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

如何拆分Pandas DataFrame嵌套列表列,解决pop操作报KeyError问题

错误原因
  • 场景1:重复执行代码:pop() 是原地操作,执行一次就会把原DataFrame的info列删除,再次执行时找不到该列就会抛出KeyError
  • 场景2:列名不匹配:实际列名和info存在偏差,比如有首尾空格、大小写差异(如Info、info)
  • 场景3:数据加载异常:原始数据导入时未成功读取到info列

另外你原有写法还存在展开逻辑问题:没有处理info列每行的外层列表,直接转DataFrame会得到整行存储元组的单列,而非拆分后的多列,下述修复代码已同步解决该问题。

修复方案

首先做列名校验,避免KeyError:

# 清除列名首尾空格,统一列名格式
data.columns = data.columns.str.strip()
# 确认info列存在
if 'info' not in data.columns:
    raise ValueError("未找到info列,请检查原始数据表结构")

再处理嵌套结构展开,自动生成要求格式的列名:

# 拆分info列为多列
info_expand = pd.DataFrame(
    data['info'].map(lambda x: x[0]).tolist(),
    index=data.index,
    columns=[f'data_info{i+1}' for i in range(len(data['info'].iloc[0][0]))]
)
# 合并到原表,删除原始info列
data = data.drop('info', axis=1).join(info_expand)
效果验证

执行后打印前5行即可查看拆分结果:

print(data.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:54:08