2017-05-29 65 views
0

我想知道是否存在刪除超過70%零或X%零的列的命令。如:刪除超過70%零的列

 df = df.loc[:, df.isnull().mean() < .7] 

對於NaN。

謝謝!

回答

3

只要改變df.isnull().mean()(df==0).mean()

df = df.loc[:, (df==0).mean() < .7] 

這裏有一個演示:

df 
Out: 
    0 1 2 3 4 
0 1 1 1 1 0 
1 1 0 0 0 1 
2 0 1 1 0 0 
3 1 0 0 1 0 
4 1 1 1 1 1 
5 1 0 0 0 0 
6 0 1 0 0 0 
7 0 1 1 0 0 
8 1 0 0 1 0 
9 0 0 0 1 0 

(df==0).mean() 
Out: 
0 0.4 
1 0.5 
2 0.6 
3 0.5 
4 0.8 
dtype: float64 

df.loc[:, (df==0).mean() < .7] 
Out: 
    0 1 2 3 
0 1 1 1 1 
1 1 0 0 0 
2 0 1 1 0 
3 1 0 0 1 
4 1 1 1 1 
5 1 0 0 0 
6 0 1 0 0 
7 0 1 1 0 
8 1 0 0 1 
9 0 0 0 1 
+0

它的工作謝謝! – hdatas