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

将Pandas中含不同长度列表的列拆分为多列

将Pandas中含不同长度列表的列拆分为多列

嗨,我来帮你搞定这个问题!针对DataFrame里包含不同长度列表的列拆分需求,其实用Pandas的内置方法就能轻松解决,完全适配你这种列表长度不固定的场景~

首先,先还原你的示例数据方便测试:

import pandas as pd

df = pd.DataFrame({
    'ID': [1, 2, 3],
    'result': [[.1,.5], [.4,-.2,-.3,.1,0], [0,.1,.6]]
})

接下来是核心操作,分三步就能实现你要的效果:

  1. 把result列的列表数据转换成一个独立的DataFrame,Pandas会自动给短列表的空缺位置填充NaN
  2. 给新生成的列重命名成result_1、result_2这种格式
  3. 把这个拆分后的DataFrame和原数据的ID列拼接起来

具体代码如下:

# 把列表列转为独立DataFrame,自动补全NaN
split_columns = pd.DataFrame(df['result'].tolist())

# 重命名列名
split_columns.columns = [f'result_{col+1}' for col in split_columns.columns]

# 拼接得到最终结果
final_df = pd.concat([df['ID'], split_columns], axis=1)

运行后你就能得到想要的结果:

ID  result_1  result_2  result_3  result_4  result_5
0   1       0.1       0.5       NaN       NaN       NaN
1   2       0.4      -0.2      -0.3       0.1       0.0
2   3       0.0       0.1       0.6       NaN       NaN

如果你喜欢更简洁的写法,也可以把这几步合并成一行代码:

final_df = df['ID'].to_frame().join(
    pd.DataFrame(df['result'].tolist()).rename(columns=lambda x: f'result_{x+1}')
)

这个方法的核心是利用pd.DataFrame()处理不规则长度列表的特性,自动用NaN补全空缺,完全不需要担心列表长度不一致的问题~

备注:内容来源于stack exchange,提问作者Ishigami

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:58:09