将null计为百分比

时间:2017-01-24 10:39:56

标签: pandas

是否有一种快速方法可以自动为每列生成空百分比,并以表格形式输出?

例如,如果一列有40行,有10个空值,则为10/40

我使用以下代码但现在可以工作(没有显示值): enter image description here

2 个答案:

答案 0 :(得分:6)

您可以使用df.count()

In [56]: df
Out[56]:
     a    b
0  1.0  NaN
1  2.0  1.0
2  NaN  NaN
3  NaN  NaN
4  5.0  NaN

In [57]: 1 - df.count()/len(df.index)
Out[57]:
a    0.4
b    0.8
dtype: float64

计时,countisnull.sum()

快得多
In [68]: df.shape
Out[68]: (50000, 2)

In [69]: %timeit 1 - df.count()/len(df.index)
1000 loops, best of 3: 542 µs per loop

In [70]: %timeit  df.isnull().sum()/df.shape[0]
100 loops, best of 3: 2.87 ms per loop

答案 1 :(得分:3)

IIUC然后您可以将isnullsum一起使用,然后除以行数:

In [12]:
df = pd.DataFrame({'a':[1,2,np.NaN,np.NaN,5], 'b':[np.NaN,1,np.NaN,np.NaN,np.NaN]})
df

Out[12]:
     a    b
0  1.0  NaN
1  2.0  1.0
2  NaN  NaN
3  NaN  NaN
4  5.0  NaN

In [14]:    
df.isnull().sum()/df.shape[0]

Out[14]:
a    0.4
b    0.8
dtype: float64