我有一个 Pandas DataFrame,其中有很多缺失值,由 np.nan
表示。 。我希望能够返回 DataFrame 中缺少 80% 以上值的行。
到目前为止,我已经尝试过以下方法:
data.loc[lambda x: (len(x.isna()) / len(x.columns)) > .8]
但这显然不是loc
当传递 lambda 函数时有效。我对此的解释是,Pandas 只是在每一行上运行一个循环并应用该函数,期望 True
或False
返回的值分别指示保留或丢弃该行。本质上是一个过滤功能。
是否有 Pandas 的方式来实现我想要的,或者我应该使用普通的 python 吗?
最佳答案
将 dropna
与 thresh
结合使用(thresh:需要许多非 NA 值。)
df.dropna(thresh=len(df.columns)*0.8)
更新:
df[(df.isna().sum(1)/df.shape[1]).gt(0.8)]
关于python - 过滤 Pandas DataFrame 中缺失值的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882712/