我有一个pandas dataframe列,看起来有点像:
Out[67]:
0 ["cheese", "milk...
1 ["yogurt", "cheese...
2 ["cheese", "cream"...
3 ["milk", "cheese"...
现在,最终我希望这是一个简单的列表,但在试图将其扁平化时,我注意到熊猫将["cheese", "milk", "cream"]
视为str
,而不是list
我该怎么把它弄平,这样我就可以:
["cheese", "milk", "yogurt", "cheese", "cheese"...]
[编辑] 所以下面给出的答案似乎是:
s = pd.Series(["['cheese', 'milk']", "['yogurt', 'cheese']", "['cheese', 'cream']"])
s = s.str.strip("[]")
df = s.str.split(',', expand=True)
df = df.applymap(lambda x: x.replace("'", '').strip())
l = df.values.flatten()
print (l.tolist())
这很好,回答问题,接受答案,但它给我的印象是相当不体面的解决方案。
若要将列值从str转换为list,可以使用
df.columnName.tolist()
;若要展平,可以使用df.columnName.values.flatten()
您可以使用^{} ,然后使用平面嵌套
lists
-see:编辑:
您可以尝试:
您可以将
Series
转换为DataFrame
,然后调用stack
:相关问题 更多 >
编程相关推荐