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

如何拆分Pandas DataFrame中第二列的列表为多列?

拆分DataFrame中包含列表的列成多列

嘿,这个需求我之前处理过好多次,分两种场景来操作就可以轻松搞定:

场景1:所有列表长度一致

如果第1列(索引为1)里的每个列表元素长度都相同,直接用pd.DataFrame()把列表列转换成新的DataFrame,再和原数据合并就行:

# 提取列表列并转换为新的DataFrame
expanded_columns = pd.DataFrame(data[1].tolist(), index=data.index)
# 给新列设置自定义名称,方便后续识别
expanded_columns.columns = [f'split_col_{i}' for i in range(expanded_columns.shape[1])]
# 删除原列表列,再和新列横向合并
final_data = pd.concat([data.drop(columns=[1]), expanded_columns], axis=1)
# 查看处理后的结果
final_data.head()

场景2:列表长度不一致

如果列表长度有差异,用apply(pd.Series)会更合适,它会自动给长度不足的行填充NaN,保证数据结构完整:

# 展开列表列,自动补全缺失值为NaN
expanded_columns = data[1].apply(pd.Series)
# 重命名新列
expanded_columns.columns = [f'split_col_{i}' for i in expanded_columns.columns]
# 合并原数据和新展开的列
final_data = pd.concat([data.drop(columns=[1]), expanded_columns], axis=1)
final_data.head()

额外小提示

如果你的数据里存在非列表类型的元素(比如偶尔出现的字符串、数值),可以先做个类型校验和转换,避免后续操作报错:

# 把非列表元素转为空列表,确保列内格式统一
data[1] = data[1].apply(lambda x: x if isinstance(x, list) else [])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:04:54