大熊猫计数聚合忽略了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。
答案 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