【发布时间】:2019-05-06 03:58:36
【问题描述】:
我正在尝试删除数据框中具有超过 7 个空值的行。请提出一些有效的方法来实现这一点。
【问题讨论】:
标签: python-3.x pandas dataframe data-science
我正在尝试删除数据框中具有超过 7 个空值的行。请提出一些有效的方法来实现这一点。
【问题讨论】:
标签: python-3.x pandas dataframe data-science
如果我理解正确,只有当总 nan 连续超过 7 时,您才需要删除行:
df = df[df.isnull().sum(axis=1) < 7]
这将只保留数据框中 nan 小于 7 的行,并将删除所有 nan > 7 的行。
【讨论】:
dropna 有一个 thresh 参数。从列数中减去您想要的数字。
thresh : int, optional 需要很多非 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
【讨论】: