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
相关产品推荐
相关产品推荐

