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

  统计/机器学习 数据预处理 Python    浏览次数:2740        分享
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的函数来处理缺失值?   2回答

如何处理聚类中的missing data   3回答

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

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

python里把数据中某一列中的na,nan,缺失值都替换成0?   1回答

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

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

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

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

怎么利用python对时间序列中缺失值进行线性插值?   1回答

决策树或者随机森林能够直接处理missing data吗?   1回答

嵌套dictionary类型数据转成pandas dataframe的问题   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!