我正在尝试删除数据框中具有7个以上空值的行。请提出一些有效的方法来实现这一目标。
答案 0 :(得分:6)
如果我理解正确,则仅当行中的总nan大于7
时,才需要删除行:
df = df[df.isnull().sum(axis=1) < 7]
这将仅保留数据帧中nan
小于7的行,并删除所有nan> 7的行。
答案 1 :(得分:1)
dropna
有一个thresh
参数。从列数中减去所需的数字。
thresh:int,可选,需要许多非NA值。
df.dropna(thresh=df.shape[1]-7, axis=0)
print(df)
0 1 2 3 4 5 6 7
0 NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN 5.0
2 6.0 7.0 8.0 9.0 NaN NaN NaN NaN
3 NaN NaN 11.0 12.0 13.0 14.0 15.0 16.0
df.dropna(thresh=df.shape[1]-7, axis=0)
0 1 2 3 4 5 6 7
1 NaN NaN NaN NaN NaN NaN NaN 5.0
2 6.0 7.0 8.0 9.0 NaN NaN NaN NaN
3 NaN NaN 11.0 12.0 13.0 14.0 15.0 16.0