如何删除大于x个Null值的数据框中的行?

时间:2018-12-04 16:46:39

标签: python-3.x pandas data-science

我正在尝试删除数据框中具有7个以上空值的行。请提出一些有效的方法来实现这一目标。

2 个答案:

答案 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