python - 过滤 Pandas DataFrame 中缺失值的百分比

标签 python pandas dataframe

我有一个 Pandas DataFrame,其中有很多缺失值,由 np.nan 表示。 。我希望能够返回 DataFrame 中缺少 80% 以上值的行。

到目前为止,我已经尝试过以下方法:

data.loc[lambda x: (len(x.isna()) / len(x.columns)) > .8]

但这显然不是loc当传递 lambda 函数时有效。我对此的解释是,Pandas 只是在每一行上运行一个循环并应用该函数,期望 TrueFalse返回的值分别指示保留或丢弃该行。本质上是一个过滤功能。

是否有 Pandas 的方式来实现我想要的,或者我应该使用普通的 python 吗?

最佳答案

dropnathresh 结合使用(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/

相关文章:

python - 使用动态表用 pandas 解析 SQL 参数标记

python - 检查 pandas DataFrame 中的两行是否具有相同的值集,无论列顺序如何

python - 将 int 列乘以 float 常量 pandas 数据帧

R - 部分字符串匹配子集

python - 如何交换 Dataframe 中的特定列值?

python - 无论如何,多线程pdf挖掘?

Python SQLAlchemy 为什么我在 FK 上收到 NoReferencedTableError

python - 如何在 Python (2.7) 单元测试中参数化 setUpClass()

python - 如何按文件名过滤QFileSystemModel的文件列表?

python - 重命名 pandas.concat 的 DataFrame 输出上的列