我有30年的每日数据。我想计算超过30年的平均每日。例如,我有这样的数据
1/1/2036 0
1/2/2036 73.61180115
1/3/2036 73.77733612
1/4/2036 73.61183929
1/5/2036 73.75443268
1/6/2036 73.58483887
.........
12/22/2065 73.90600586
12/23/2065 74.38092804
12/24/2065 77.76309967
我想计算:
1/1/yyyy ?
1/2/yyyy ?
1/3/yyyy ?
......
12/30/yyyy ?
12/31/yyyy ?
我在python中编写了一个代码,但它只计算了第一个月的平均值。我的数据集是10950 x 1,将转换为365 x 1.以下是我的代码:
import pandas as pd
files=glob.glob('*2036-2065*rcp26*.csv*')
RO_act=pd.read_csv('Reservoir storage zones_sohom.csv',index_col=0,parse_dates=True)
for i, fl in enumerate(files):
df = pd.read_csv(fl, index_col=0,usecols=[0,78],parse_dates=True)
df1=df.groupby(pd.TimeGrouper(freq='D')).mean()
请帮忙
答案 0 :(得分:1)
您可以将函数传递给df.groupby
,该函数将作用于索引以生成组。所以,对你来说,使用:
df.groupby(lambda x: (x.day,x.month)).mean()
答案 1 :(得分:0)