为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中将列表中的值作为 pandas 数据框中的列值的可扩展方法

在 Python 中将列表中的值作为 pandas 数据框中的列值的可扩展方法

慕雪6442864 2023-10-18 15:33:43
我有一个 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']

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

你可以这样做:


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


查看完整回答
反对 回复 2023-10-18
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

我认为这会起作用:


df.message.apply(pd.Series)


要使用 dask 进行扩展(假设已安装):


import dask.dataframe as dd


ddf = dd.from_pandas(df, npartitions=8)

ddf.message.apply(pd.Series, meta={0: 'object'})


查看完整回答
反对 回复 2023-10-18

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号