如何删除第一列和第三列中都包含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")会起作用。