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

  统计/机器学习 数据预处理 Python    浏览次数: 1144
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)


岛歌   2017-11-29 12:24

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


  相关主题

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

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

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

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

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

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

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

对pandas.DataFrame进行groupby结果中index的问题   2回答

怎么把collections.Counter的计数结果转为pandas的DataFrame   2回答

怎么对pandas dataframe的列求众数   2回答

pandas怎么读入tsv格式的数据   1回答

pandas.DataFrame的index重新排列(从0开始)   2回答



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

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

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

我们谢绝答非所问。

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

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