2
我有一个小时频率的日期时间索引数据框。我想创建一个groupby对象 - 按季节分组。到了季节,我的意思是春天是3,4,5,夏天是6,7,8等等。我希望每个赛季都有一个独特的组合。有没有办法做到这一点与自定义DateOffset?它需要一个子类来完成吗?还是我生产一个季节专栏,然后做:grouper = df.groupby([df['season'], df.index.year])
。Python Pandas:创建季节性DateOffset对象?
当前的代码是丑陋:
def group_season(df):
"""
This uses the meteorological seasons
"""
df['month'] = df.index.month
spring = df['month'].isin([3,4,5])
spring[spring] = 'spring'
summer = df['month'].isin([6,7,8])
summer[summer] = 'summer'
fall = df['month'].isin([9,10,11])
fall[fall] = 'fall'
winter = df['month'].isin([12,1,2])
winter[winter] = 'winter'
df['season'] = pd.concat([winter[winter != False], spring[spring != False],\
fall[fall != False], summer[summer != False]], axis=0)
return df.groupby([df['season'], df.index.year])