[英]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.