如何删除第一列和第三列中都包含NaN的行?

当数据框是这样时,

      a    b     c     d
0   1.0  NaN   3.0   NaN
1   NaN  6.0   NaN   8.0
2   9.0  NaN   NaN   NaN
3  13.0  NaN  15.0  16.0

我想删除b 和 d 列中包含 NaN 的行。所以我希望结果是这样的。

      a    b     c     d
1   NaN  6.0   NaN   8.0
3  13.0  NaN  15.0  16.0

在这种情况下,我无法使用,df.dropna(thresh=2)因为我不想擦除第 1 行,
如果我使用,df.dropna(subset=['b', 'd'])那么第 3 行也将被删除。
我现在该怎么办?

回答

dropna有一个额外的参数,how

how{‘any’, ‘all’}, default ‘any’
    Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
        ‘any’ : If any NA values are present, drop that row or column.
        ‘all’ : If all values are NA, drop that row or column.

如果将其设置为all,则只会删除填充为 NaN 的行。在你的情况下df.dropna(subset=['b', 'd'], how="all")会起作用。


以上是如何删除第一列和第三列中都包含NaN的行?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>