我可以基于将一年的第一天作为1月1日来计算年度平均值,最大值和最小值,例如:
yearly_avg=df2.groupby(years).mean()
yearly_sum=df2.groupby(years).sum()
yearly_MAX=df2.groupby(years).max()
yearly_MIN=df2.groupby(years).min()
我需要根据水年(10月1日是一年的第一天)来计算平均值,最大值和最小值。作为“水年”的一种解释:https://en.wikipedia.org/wiki/Water_year
这是我的示例文件存储在这里: https://drive.google.com/file/d/1AYi9vp3_DPXHoCPB_YkMQp68FvC_INrV/view?usp=sharing
我该怎么做? 谢谢。
答案 0 :(得分:1)
只需将年份设置为10月而不是1月。我很高兴您的列已经是datetime
类型,这使事情变得更加容易!
df = pd.read_excel('sample_water_year.xlsx')
df['# YEAR'] = df.Dates.dt.to_period('A-Sep') #year ends on sep
请注意,您将必须减去1,因为它不会更改设置的初始年份值。
df['# YEAR'] = df['# YEAR'] - 1
然后只需找到摘要统计信息:
yearly_avg = df.groupby('# YEAR').mean()
yearly_sum = df.groupby('# YEAR').sum()
yearly_MAX = df.groupby('# YEAR').max()
yearly_MIN = df.groupby('# YEAR').min()
希望这会有所帮助!