我有一个非常简单的Pandas
dataframe
,其中每个单元格都包含一个列表。我想将列表中的每个元素拆分为自己的列。我可以通过导出值,然后创建一个新的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
您可以使用
apply()
函数循环遍历序列,并将每个列表转换为Series
,这会自动将列表按列方向展开为一个序列:更新:要保留数据帧的其他列,可以将结果与要保留的列连接起来:
你可以做
pd.DataFrame(df[col].values.tolist())
-比~500x快得多时间安排
中等
大的
相关问题 更多 >
编程相关推荐