找出与不同年份相匹配的所有月份、日期和时间,并取其平均值



我有一个DataFrame,它的日期时间索引范围从2004-01-01 01:002014-12-31- 00:00

2004-01-01 00:00:00+01:00          
2004-01-01 01:00:00+01:00          
2004-01-01 02:00:00+01:00         
2004-01-01 03:00:00+01:00
.
.
.
2014-12-30 22:00:00+01:00      
2014-12-30 23:00:00+01:00       
2014-12-31 00:00:00+01:00   

我想找出与年份无关的所有天数、月份和小时,并取这些值的平均值。

例如,如果我要求"YYYY-01-01 01:00",我将取存储在索引中的值的平均值

"2004-01-01 01:00", "2005-01-01 01:00", "2006-01-01 01:00", "2007-01-01 01:00", "2008-01-01 01:00", "2009-01-01 01:00", "2010-01-01 01:00", "2011-01-01 01:00", 
"2012-01-01 01:00", "2013-01-01 01:00", "2014-01-01 01:00"  

我试着用每小时一次的频率和所有日期的循环来创造一个新的一年,但这些都需要很长时间。df_inflow是索引为2004年至2014年的DataFrame,由函数inflow((给出

date_range = pd.date_range(start=pd.to_datetime('2019-01-01'), 
end=pd.to_datetime('2019-12-31'), tz='Europe/Oslo', freq='H')
df_inflow = inflow() 
for date in date_range:
temp_inflow = df_inflow.loc[(df_inflow.index.strftime('%m-%d %H') == 
date)].mean()[0]
# Save mean

我相信您需要DataFrame.groupbymean:

df = df_inflow.groupby(df_inflow.index.strftime('%m-%d %H')).mean()

或者如果需要0:列的mean

df = df_inflow.groupby(df_inflow.index.strftime('%m-%d %H'))[0].mean()

最新更新