【发布时间】:2017-04-16 21:35:01
【问题描述】:
我有一个非常简单的Pandasdataframe,其中每个单元格都包含一个列表。我想将列表的每个元素拆分为它自己的列。我可以通过导出值然后创建一个新的dataframe 来做到这一点。如果我的dataframe 在列表列之外还有一列,这似乎不是一个好方法。
import pandas as pd
df = pd.DataFrame(data=[[[8,10,12]],
[[7,9,11]]])
df = pd.DataFrame(data=[x[0] for x in df.values])
期望的输出:
0 1 2
0 8 10 12
1 7 9 11
基于@Psidom 回答的跟进:
如果我确实有第二列:
df = pd.DataFrame(data=[[[8,10,12], 'A'],
[[7,9,11], 'B']])
我怎样才能不松开另一列?
期望的输出:
0 1 2 3
0 8 10 12 A
1 7 9 11 B
【问题讨论】:
-
df[0].apply(pd.Series)适用于您的示例。 -
@Psidom
apply(Series)可以,但 perhaps we could do better.
标签: python python-2.7 list pandas dataframe