Python 如何在时间戳上正确使用group by?

Python 如何在时间戳上正确使用group by?,python,pandas,datetime,time-series,data-analysis,Python,Pandas,Datetime,Time Series,Data Analysis,我有一个全年每分钟的timeseries数据 timestamp day hour min rainfall_rate 2010-01-01 00:00:00 1 0 0 x 2010-01-01 00:01:00 1 0 1 x 2010-01-01 00:02:00 1 0 2 x 2010-01-01 00:03:00 1 0 3

我有一个全年每分钟的timeseries数据

timestamp               day hour min rainfall_rate           
2010-01-01 00:00:00     1   0   0       x
2010-01-01 00:01:00     1   0   1       x
2010-01-01 00:02:00     1   0   2       x
2010-01-01 00:03:00     1   0   3       x
2010-01-01 00:04:00     1   0   4       x
...                            ...
2010-12-31 23:55:00     365 23  55  
2010-12-31 23:56:00     365 23  56  
2010-12-31 23:57:00     365 23  57  
2010-12-31 23:58:00     365 23  58  
2010-12-31 23:59:00     365 23  59 
我想结合时间戳,这样我可以得到每个月的综合降雨率,也就是说,我想使用group by根据日期将它们结合起来,并将它们与轴一起绘制为时间戳,以便进一步分析。 如何使用熊猫执行此操作

我用过-

每日组=降雨量组降雨量组指数日期

每日分组。获取分组pd.Timestamp2010,1,1[“降雨率”]。求和,但当然我无法绘制它们,因为它们的形状不同。

使用pd.Grouper和freq=M:


您还可以将列时间戳转换为只包含月份的列。但解决方案@Henry Yik看起来很棒Rainsion_df['month_year']=Rainsion_df['timestamp'].dt.to_period'M''OP希望获得每个月的总降雨量,而不是分配一个新列。当然,那么需要groupby。您能解释一下代码吗,我是初学者@HenryYik@random_user没有什么特别的-您的索引已经是datetime,因此您可以使用pd.gropper按月对它们进行分组,然后计算每组的降雨量。
print (df.groupby(pd.Grouper(freq="M"))["rainfall_rate"].count())


#
    timestamp
2010-01-31    5
2010-02-28    0
2010-03-31    0
2010-04-30    0
2010-05-31    0
2010-06-30    0
2010-07-31    0
2010-08-31    0
2010-09-30    0
2010-10-31    0
2010-11-30    0
2010-12-31    0