For循环到平均日期时间数据

2024-10-02 00:42:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图根据月份对不同的数据列进行平均。找到2019年4月B的平均值

Date        A       B       C       D
2012-04-01  173.53  10.81   133.96  28.75
2012-04-02  197.99  10.92   147.91  39.17
2012-04-03  211.35  10.97   164.73  35.64
2012-04-04  249.39  11.02   200.62  37.75
2012-04-05  233.59  11.39   187.57  34.64

我已经计算出如何根据月份和年份来平均每个列

index = pd.date_range('2012 04 01', '2019, 12, 31', freq='1MS')

apr12 = (demdf.index.year==2012) & (demdf.index.month==4)
apr12ave = demdf.loc[apr12].mean(axis=0)

但我不知道如何创建一个循环,通过循环得到每年每个月的平均值(数据集从2014年到2019年)

非常感谢任何帮助


Tags: 数据dateindexrangeyear平均值pd年份
1条回答
网友
1楼 · 发布于 2024-10-02 00:42:16

使用^{}

#df['Date'] = pd.to_datetime(df['Date'])
df.resample('M',on='Date').mean()

^{}^{}

#df['Date'] = pd.to_datetime(df['Date'])
df.groupby(pd.Grouper(freq = 'M',key='Date')).mean()

输出

                 A       B        C      D
Date                                      
2012-04-30  213.17  11.022  166.958  35.19

如果需要多索引(年、月)数据帧

df.groupby([df.Date.dt.year,df.Date.dt.month]).mean()

相关问题 更多 >

    热门问题