繁体   English   中英

删除缺失值高于阈值熊猫的列

[英]Remove Columns with missing values above a threshold pandas

我正在进行数据预处理,并希望删除缺失值超过 10% 的特征/列。

我已经制作了以下代码:

df_missing=df.isna()
result=df_missing.sum()/len(df)
result

Default           0.010066
Income            0.142857
Age               0.109090
Name              0.047000
Gender            0.000000
Type of job       0.200000
Amt of credit     0.850090
Years employed    0.009003
dtype: float64

我希望 df 只有在没有超过 10% 的缺失值的地方才有列。

预期输出:

df

Default   Name   Gender   Years employed

(缺失值大于 10% 的列将被删除。)

我试过了

result.iloc[:,0] 
IndexingError: Too many indexers

请帮忙

因为总和除以长度是mean ,您可以改为df_missing.sum()/len(df)使用df_missing.mean()

result = df.isna().mean()

然后通过DataFrame.loc使用:过滤所有行和列的掩码:

df = df.loc[:,result > .1]

它应该是df = df.loc[:,result < .1]因为用户只想保留缺少行数少于 10% 的列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM