我正在处理一个数据集,并且一切进展顺利。我目前在生成超过0的值计数时遇到问题。
我拥有的是:
zz = g.aggregate({'Rain':['sum'],'TotalRainEvent':['max'],'TotalRainEvent':['count']})
print(zz)
哪个返回:
Rain TotalRainEvent
sum count
Year Month
2010 1 0.0 31
2 4.8 28
3 27.8 31
4 30.6 30
5 89.8 31
... ...
2020 2 11.0 29
3 40.9 31
4 11.1 30
5 107.3 31
6 46.4 22
[126 rows x 2 columns]
如您所见,计数值返回的是当月的记录数。我只想计算大于0的值。
如果“ TotalRainEvent”列中有值,我可以通过创建另一列并仅在其中输入1来创建计数,但是我认为最好学习如何操作.aggregate函数
感谢您的帮助,
谢谢!
答案 0 :(得分:1)
您如何在开始时g = g.replace(0,np.nan)
和结束时g = g.replace(np.nan, 0)
进行操作?我认为每个文档都不会计算np.nan值。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.aggregate.html
g = g.replace(0,np.nan)
zz = g.aggregate({'Rain':['sum'],'TotalRainEvent':['max'],'TotalRainEvent':['count']})
zz = zz.replace(np.nan, 0)
g = g.replace(np.nan, 0)
print(zz)