For Loop 平均日期时间数据
For Loop to average datetime data
我正在尝试根据月份计算各列数据的平均值。例如。求 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 年)。
非常感谢任何帮助!
#df['Date'] = pd.to_datetime(df['Date'])
df.resample('M',on='Date').mean()
或pd.Grouper
with DataFrame.groupby
#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
如果你想要一个MultiIndex(年,月)DataFrame。
df.groupby([df.Date.dt.year,df.Date.dt.month]).mean()
我正在尝试根据月份计算各列数据的平均值。例如。求 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 年)。
非常感谢任何帮助!
#df['Date'] = pd.to_datetime(df['Date'])
df.resample('M',on='Date').mean()
或pd.Grouper
with DataFrame.groupby
#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
如果你想要一个MultiIndex(年,月)DataFrame。
df.groupby([df.Date.dt.year,df.Date.dt.month]).mean()