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

Pandas执行drop方法遇KeyError:指定列名未在轴中找到

问题解决:Pandas删除列时出现KeyError

执行的代码

cols = ['Row ID', 'Order ID', 'Order Date', 'Ship Date', 'Ship Mode',
        'Customer ID', 'Customer Name', 
        'Segment', 'Country', 'City', 'State',
        'Postal Code', 'Region', 'Product ID',
        'Category', 'Sub-Category', 'Product Name',
        'Quantity', 'Discount', 'Profit']
furniture.drop(cols, axis=1, inplace=True)
furniture = furniture.sort_values('Order Date')
furniture.isnull().sum()

报错信息

KeyError:"['Row ID', 'Order ID', 'Ship Date', 'Ship Mode', 'Customer ID', 'Customer Name', 'Segment', 'Country', 'City', 'State', 'Postal Code', 'Region', 'Product ID', 'Category', 'Sub-Category', 'Product Name', 'Quantity', 'Discount', 'Profit'] not found in axis"

用户尝试重新导入pandas、numpy等库,问题仍未解决,无法正常定义列并执行删除操作。

解决步骤

  • 先确认DataFrame的实际列名:执行print(furniture.columns.tolist()),把输出的列名和定义的cols列表逐一对比,检查是否有拼写错误、空格差异(比如“RowID”和“Row ID”)、大小写不一致(比如“order date”和“Order Date”)。
  • 若只需保留特定列,建议直接筛选保留列,比删除列更稳妥。比如想保留某几列,就写furniture = furniture[['要保留的列名1', '要保留的列名2']]。
  • 如果一定要用drop方法,先筛选出DataFrame中实际存在的列再删除:
    existing_cols = [col for col in cols if col in furniture.columns]
    furniture.drop(existing_cols, axis=1, inplace=True)
    
  • 检查数据导入环节,确认读取数据时是否正确解析了列名,比如有没有把第一行当成数据而非列名,或者读取时设置了错误的参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:15:00