根据水年计算平均值,最大值和最小值

时间:2019-11-04 21:31:07

标签: pandas

我可以基于将一年的第一天作为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

我该怎么做? 谢谢。

1 个答案:

答案 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()

希望这会有所帮助!