按非零值的百分比选择列

时间:2017-09-22 15:44:43

标签: python pandas

我有一个很大的稀疏数据帧,我想自动删除列(列键/名称是动态的,所以原则上我不知道列号和命名)有一些非零元素低于总行数的一定百分比。

谢谢!

2 个答案:

答案 0 :(得分:1)

@user3620915 它是 thresh 而不是 thres

df.replace(to_replace=0, value=np.nan)
df.dropna(thresh=int(len(df)*0.8), axis=1)

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

答案 1 :(得分:0)

Pandas有一个dropna函数,它有一个thresh参数。只需将其设置为您需要保留的非零值的数量。所以

df.dropna(thres=int(len(df)*0.8), axis=1)

将删除少于80%的行完成的列。