我有一个很大的稀疏数据帧,我想自动删除列(列键/名称是动态的,所以原则上我不知道列号和命名)有一些非零元素低于总行数的一定百分比。
谢谢!
答案 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%的行完成的列。