如何删除数据框中包含Nan值的列?

时间:2020-10-01 09:19:16

标签: python pandas radio-button

我具有根据选中的单选按钮检查哪个单选按钮的功能

  • 按行
  • 按列

系统将删除包含 Nan值

的记录

当用户选择按行逐行拖放时,该功能开始工作并返回所需的结果。

当用户选择按列拖放时,该函数将崩溃并显示以下错误。

self.df= self.df.dropna(subset =item, axis= 1 , inplace=False)
  File "F:\AIenv\lib\site-packages\pandas\core\frame.py", line 4999, in dropna
    raise KeyError(list(np.compress(check, subset)))

代码:

def getText(self,df,item):
    if (len(item)>0):
        print(item)        
        if self.RD_row.isChecked()==True:
            print("RD_row")
            self.df= self.df.dropna(subset = item , inplace=False)
        elif self.RD_column.isChecked()==True:
            print("RD_column")
            self.df= self.df.dropna(subset =item, axis= 1 , inplace=False)

2 个答案:

答案 0 :(得分:1)

我找到了解决方案,方法是使用drop而不是dropna所在的行:

self.df= self.df.drop(item, axis= 1 , inplace=False)

答案 1 :(得分:0)

要删除至少包含一个NaN值的行,可以使用

df = df.dropna()

要删除至少包含一个NaN值的列,可以使用

df = df.dropna(axis='columns')

要了解有关处理NaN值的更多信息,可以检出此documentation