首页 > 解决方案 > Pandas 错误:'[nan nan] not found in axis' 同时删除没有标签的列

问题描述

我正在尝试将前两列放在列标题为 NaN 的数据框中。数据框如下所示:

**15 NaN NaN          NaN           Energy Supply  Energy Supply Renewable Energy**
  17 NaN Afghanistan  Afghanistan   1              2             3
  18 NaN Albania      Albania       1              2             3
  19 NaN Algeria      Algeria       1              2             3
  

我需要删除标记为 NaN 的前两列。我试过df=df.drop(df.columns[[1,2]],axis=1)了,它返回一个错误我错过了什么?

KeyError:'[nan nan] 在轴中找不到'

标签: pythonpandasdataframe

解决方案


奇怪的是你有NaN列。请尝试过滤不以NaNusing开头的列regex

df.filter(regex='^(?!NaN).+', axis=1)

使用您的数据

print(df)
  15  NaN        NaN.1        NaN.2  EnergySupply  EnergySupply.1  \
0  17  NaN  Afghanistan  Afghanistan             1               2   
1  18  NaN      Albania      Albania             1               2   
2  19  NaN      Algeria      Algeria             1               2   

   RenewableEnergy  
0                3  
1                3  
2                3  

解决方案

print(df.filter(regex='^(?!NaN).+', axis=1))
       15   EnergySupply   EnergySupply.1    RenewableEnergy
    0  17             1               2                3
    1  18             1               2                3
    2  19             1               2                3

推荐阅读