无法删除名为2021.0的列:KeyError报错求助
解决DataFrame删除"2021.0"列报错的问题
先确认列名的真实状态
报错核心是你指定的列名和DataFrame里的实际列名不匹配,先做这几步排查:
- 执行
print(df2.columns)打印所有列名,仔细核对:是不是列名带空格、大小写差异,或者是数值类型的2021.0而非字符串类型? - 如果列名是float类型的数值,把代码里的字符串"2021.0"换成数值
2021.0即可:df3 = df2.drop(labels=2021.0, axis=1) # 或者另一种写法 df3 = df2.drop([2021.0], axis='columns')
处理列名的隐藏格式问题
如果打印出来列名看起来是"2021.0"但还是报错,大概率是列名带隐藏空格或特殊字符:
- 先执行
df2.columns = df2.columns.str.strip()去除所有列名前后的空格 - 再重新运行删除代码
用索引强制删除(兜底方案)
要是还是搞不定,直接用列的索引定位删除:
# 先执行print(df2.columns)找到"2021.0"对应的索引(从0开始计数) # 假设它是第2列,就用下面的代码 df3 = df2.drop(df2.columns[2], axis=1)
内容的提问来源于stack exchange,提问作者Khalilomorph
相关产品推荐
相关产品推荐

