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

如何为Pandas DataFrame单元格内列表的每个元素新增一列?

问题描述

我有如下表格:

import pandas as pd

df_test = pd.DataFrame()
df_test = df_test.assign(A=[[1,2,3], [1,2], [], [1,2,3,4]])
df_test

对应表格:

A
[1,2,3]
[1,2]
[]
[1,2,3,4]

我需要将每行单元格内列表的每个元素拆分为单独的新增列,最终期望输出如下:

A
[1,2,3]123
[1,2]12
[]
[1,2,3,4]1234
解决方法

可以通过将列表列转换为多列DataFrame,再与原表横向拼接来实现:

import pandas as pd

df_test = pd.DataFrame()
df_test = df_test.assign(A=[[1,2,3], [1,2], [], [1,2,3,4]])

# 将列A中的列表展开为多列
expanded_cols = df_test['A'].apply(pd.Series)
# 合并原数据表与展开后的列
final_df = pd.concat([df_test, expanded_cols], axis=1)

print(final_df)

执行后即可得到符合需求的结果。如果需要自定义新增列的名称,可以修改展开后的列名:

# 给新增列设置自定义名称
expanded_cols.columns = [f'elem_{i+1}' for i in expanded_cols.columns]
final_df = pd.concat([df_test, expanded_cols], axis=1)

这样新增的列会被命名为elem_1、elem_2等,更具可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:40:44