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

使用Pandas split方法生成新列时遭遇KeyError问题求助

问题解决:KeyError 处理方案

错误原因

执行df[['tag']] = df['name'].str.split(' ', expand=True)[[0]]时触发KeyError,本质是df['name'].str.split(' ', expand=True)生成的DataFrame中不存在列名为0的列。这种情况通常出现在:

  • 部分name字段没有空格分隔,导致split后生成的列名规则不符合预期;
  • 老版本pandas(如你使用的Python3.7配套版本)对split结果的列名处理存在差异。

可行解决方案

方案1:按位置选取列(不受列名影响)

用iloc直接按位置提取第一列,避免列名匹配问题:

df[['tag']] = df['name'].str.split(' ', expand=True).iloc[:, [0]]

方案2:简化提取逻辑(推荐)

使用str.split的n=1参数限制仅分割一次,直接提取第一个元素,代码更简洁高效:

df['tag'] = df['name'].str.split(' ', n=1).str[0]

如果需要保持赋值给列表形式的列(df[['tag']]),可以调整为:

df[['tag']] = df['name'].str.split(' ', n=1, expand=True).iloc[:, [0]]

验证结果

执行上述方案后,DataFrame将新增tag列,内容为name字段中第一个空格前的内容,符合预期输出:

namedateflagtag
abc 0122023-08-141abc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:04:52