【问题标题】:How to delete rows for column having Non-NaN values如何删除具有非 NaN 值的列的行
【发布时间】:2020-10-08 00:47:38
【问题描述】:

输入数据帧(df)

Country Region      Date    Value.....
ABW     NaN     01-01-2020  123
ABW     NaN     02-01-2020  1234
ABW     NaN     03-01-2020  3242
USA     NaN     04-01-2020  4354
USA     NaN     05-01-2020  43543
USA     NaN     06-01-2020  34534
USA     NaN     07-01-2020  435
USA     WA      08-01-2020  43345
USA     WA      09-01-2020  345
USA     WV      10-01-2020  345
.
.
.
.

预期输出(df1)

Country Region      Date    Value.....
ABW     NaN     01-01-2020  123
ABW     NaN     02-01-2020  1234
ABW     NaN     03-01-2020  3242
USA     NaN     04-01-2020  4354
USA     NaN     05-01-2020  43543
USA     NaN     06-01-2020  34534
USA     NaN     07-01-2020  435
.
.
.
.

因此,从上面的数据框中您可以看到“Region”列具有 NaN 以及非空值,我想删除“Region”列具有非 NaN 值的整行.

另外,在执行上述操作之后,如果我想完全删除Region 列,如何以最快的方式(10k+ 列)做到这一点?请高手帮忙!

最终预期输出

Country         Date        Value.....
ABW             01-01-2020  123
ABW             02-01-2020  1234
ABW             03-01-2020  3242
USA             04-01-2020  4354
USA             05-01-2020  43543
USA             06-01-2020  34534
USA             07-01-2020  435

这是我尝试过的代码

df1=df1.isnull(df1['Region'])

错误

    df1=df.isnull(df['Region'])                                                                                                                                                          
TypeError: isnull() takes 1 positional argument but 2 were given  

【问题讨论】:

  • df = df[df.Region.isnull()]
  • 谢谢!! @BEN_YO

标签: python pandas dataframe


【解决方案1】:

使用@BEN_YO 的建议,这就是我所做的,效果很好

 filtered_df = df1[df1['Region'].isnull()]

【讨论】: