我有一个只有一列的pandas数据框,该列中每个单元格的值是一个数字列表/数组,此列表的长度为100,并且此长度在所有单元格值中都是一致的。
我们需要将每个列表值转换为列值,换句话说,有一个包含100列的数据框,并且每个列值位于列表/数组项中。
可以使用iterrows()完成,如下所示,但是我们大约有150万行,并且需要可伸缩的解决方案,因为iterrows()会花费很多时间。
cols = [f'col_{i}' for i in range(0, 4)]
df_inter = pd.DataFrame(columns = cols)
for index, row in df.iterrows():
df_inter.loc[len(df_inter)] = row['message']
你可以这样做:
In [28]: df = pd.DataFrame({'message':[[1,2,3,4,5], [3,4,5,6,7]]})
In [29]: df
Out[29]:
message
0 [1, 2, 3, 4, 5]
1 [3, 4, 5, 6, 7]
In [30]: res = pd.DataFrame(df.message.tolist(), index= df.index)
In [31]: res
Out[31]:
0 1 2 3 4
0 1 2 3 4 5
1 3 4 5 6 7
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句