Pandas 聚合以与 nan 一起计数

Sna*_*ark 6 numpy pandas

pandas 计数聚合忽略了 nan 的计数。我需要一个包含它们的计数。Numpy 具有某些但不是所有 nan 修改聚合的聚合,我是否必须使用自定义聚合,或者是否有一种我找不到的方法可以做到这一点?

这是针对 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
Run Code Online (Sandbox Code Playgroud)

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

cnc*_*gvg 4

只需使用len()

size = lambda x: len(x)
df.groupby(0).agg(['count', 'mean', 'size'])
Run Code Online (Sandbox Code Playgroud)

输出:

      1          
  count mean size
0                
0     0  NaN    3
Run Code Online (Sandbox Code Playgroud)

  • 无需定义尺寸。 (4认同)