您可以通过
pd.Dataframe(col.tolist())在该列上执行此 *** 作:
In [2]: df = pd.Dataframe({'a':[1,2], 'b':[(1,2), (3,4)]})In [3]: df Out[3]: a b0 1 (1, 2)1 2 (3, 4)In [4]: df['b'].tolist() Out[4]: [(1, 2), (3, 4)]In [5]: pd.Dataframe(df['b'].tolist(), index=df.index) Out[5]: 0 10 1 21 3 4In [6]: df[['b1', 'b2']] = pd.Dataframe(df['b'].tolist(), index=df.index)In [7]: df Out[7]: a b b1 b20 1 (1, 2) 1 21 2 (3, 4) 3 4
df['b'].apply(pd.Series)代替
pd.Dataframe(df['b'].tolist(),index=df.index)。这也很好(因为它使每个元组组成一个Series,然后将其视为一个数据帧的一行),但是比
tolist版本更慢/使用了更多的内存,如此处其他答案所述(感谢@denfromufa)
。
我更新了此答案,以确保最可见的答案具有最佳的解决方案。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)