You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas含列表的列转换为nx60结构的DataFrame

解决方法:将列表列转换为多列DataFrame

嘿,我明白你的问题了——单行处理时用类似expand的逻辑能得到预期的60列,但整列批量处理就出问题。别担心,这里有几个简单高效的方法能帮你搞定:

方法1:直接用pd.DataFrame构造(推荐,速度最快)

这是最直接且高效的方式,它避免了逐行循环,直接把列中的列表批量转换为DataFrame:

import pandas as pd

# 假设原DataFrame叫df,存储列表的列名为'list_column'
new_df = pd.DataFrame(df['list_column'].tolist(), index=df.index)

这样生成的new_df就是你要的n行×60列的DataFrame,索引和原DataFrame完全一致。如果需要保留原DataFrame的其他列,只需要用pd.concat合并:

# 合并原DataFrame的其他列和新生成的多列DataFrame
final_df = pd.concat([df.drop('list_column', axis=1), new_df], axis=1)

方法2:用apply(pd.Series)逐行转换

如果你习惯用apply的方式,也可以这样做(不过大数据集下速度不如方法1):

new_df = df['list_column'].apply(pd.Series)

这个方法会把每行的列表转换成一行60列的数据,最终拼接成n行的DataFrame,效果和方法1一致。

为什么单行正常但整列异常?

你提到单行调用相关函数表现正常,推测你可能是对单个列表做了类似pd.Series(single_list).to_frame().T的操作(本质是把单个列表转成一行DataFrame),但整列处理时如果用了错误的方法(比如误调用explode,它会把列表的每个元素拆成单独的行,而不是列),就会得到不符合预期的结果。上面的两种方法都是专门针对“列表转多列”的场景,不会出现这种问题。

内容的提问来源于stack exchange,提问作者Mauro Gentile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:32:23