pandas DataFrame中去掉缺失值多于50%的列

  统计/机器学习 数据预处理 Python    浏览次数:15552        分享
0

我参考了缺失值的处理方法,想把我数据中缺失值多于50%的列从DataFrame里去掉。

请问pandas中有相关的实现方法吗?


 

Robin峰   2017-11-28 22:25



   1个回答 
3

我写了个函数

def drop_col(df, col_name, cutoff=0.5):
    n = len(df)
    cnt = df[col_name].count()
    if (float(cnt) / n) < cutoff:
        df.drop(col_name, axis=1, inplace=1)

用的时候,比如说你有一个pandas的dataframe叫df,其中有一列是'col_1',如果这一列中有50%以上的缺失值,那么就从df中删除这一列

drop_col(df, 'col_1', cutoff=0.5)

如果这一列中有80%以上的缺失值,那么就从df中删除这一列

drop_col(df, 'col_1', cutoff=0.2)


SofaSofa数据科学社区DS面试题库 DS面经

岛歌   2017-11-29 12:24

多谢! - Robin峰   2017-11-29 22:47


  相关讨论

pandas里有没有类似于sql里coalesce的函数来处理缺失值?

pandas怎么根据就近原则填充dataframe中的缺失数值?

怎么对dataframe中的某一列groupby求缺失值的个数?

如何判断缺失值是否是随机的缺失?

数据预处理中,都有哪些方法能够处理缺失值(missing value)

训练集中有的特征含有缺失值,一般怎么处理

dataframe每行或者每列中缺失值(na, nan, null)的个数

如何处理聚类中的missing data

怎样处理具有大标签的数据?以及标签数据缺失怎么处理?

如何在日期序列中补齐缺失的日期

  随便看看

sklearn分类模型中预测结果怎么调整概率的阈值

怎么添加pandas的dataframe到已有的csv文件,并且不覆盖原内容

凸函数、凸集分别是什么意思?

为什么LR要用Sigmoid函数?

逻辑回归模型中变量的系数怎么理解?