pandas使用drop删除id列时报KeyError: ['id'] not found in axis如何解决
错误根因
你调用pd.read_csv()时没有指定分隔符,pandas默认使用逗号,作为分隔符读取文件,但你的csv是手动保存的分号;分隔格式,这就导致读入的DataFrame实际仅存在1个列,列名是完整的表头字符串id;diagnosis;radius_mean;......,不存在单独的id列,因此执行删除操作时触发KeyError。
你可以执行print(df.columns)验证该问题,输出结果只会返回1个长字符串形式的列名,和你预期的32个独立列完全不符。
修复方案
- 先修改文件读取代码,手动指定分隔符为分号:
df = pd.read_csv("inputs/breastCancer.csv", sep=";")
- 再执行删除列的操作即可正常运行,如果你需要同时删除id、diagnosis前两列,可以直接写:
df = df.drop(columns=['id', 'diagnosis'], axis=1)
内容的提问来源于stack exchange,提问作者Luk
相关产品推荐
相关产品推荐

