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

  统计/机器学习 数据预处理 Python
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


相关问题

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

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

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

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

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

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

如何重命名pandas的dataframe的列名   2回答

pandas df.head()报错AttributeError: 'NoneType' object has no attribute 'head'   1回答

pandas读取csv中指定的某些列   2回答

pandas的DataFrame如何插入带有index的行数据?   1回答

pandas里index的问题   1回答

pd.dataframe怎么同时对两个key排序?   1回答



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

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

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

我们谢绝答非所问。

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

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