大熊猫聚集计数与nans

时间:2016-03-27 21:33:22

标签: numpy pandas

大熊猫计数聚合忽略了nan。我需要一个包含它们的计数。 Numpy对一些但不是所有的纳米修改聚合都有聚合,我是否必须使用自定义聚合,或者有没有找到我无法找到的方法?

这是针对groupby的,我想要正常的NaN功能,但计数很奇怪。在代码中

In [1]: import numpy

In [2]: import pandas as pd

In [3]: df = pd.DataFrame([[0,float('nan')],[0,float('nan')],[0,float('nan')]])

In [4]: df.groupby(0).agg(['count', 'mean'])
Out[4]:
      1
  count mean
0
0     0  NaN

我希望输出为3 Nan而不是0 NaN。

2 个答案:

答案 0 :(得分:2)

只需使用len()

size = lambda x: len(x)
df.groupby(0).agg(['count', 'mean', 'size'])

输出:

      1          
  count mean size
0                
0     0  NaN    3

答案 1 :(得分:1)

如果你唯一的问题是计数,你可以像这样替换NaN值:

In [17] : df = pd.DataFrame([0,NaN,3])
          print df.count()

Out [17]: 0    2
          dtype: int64


In [18] : marker = -1
          df = df.fillna(marker)
          print df.count()

Out [18]: 0    3
          dtype: int64