熊猫汇总-计算x上的值

时间:2020-06-24 08:23:06

标签: python-3.x pandas dataframe

我正在处理一个数据集,并且一切进展顺利。我目前在生成超过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函数

感谢您的帮助,

谢谢!

1 个答案:

答案 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)