Ich habe einen Datetime indizierten Datenrahmen mit einer stündlichen Häufigkeit. Ich würde gerne eine Gruppierung nach Objekt erstellen - Gruppierung nach Jahreszeit. Nach Saison bedeutet Frühling die Monate 3, 4, 5, Sommer ist 6, 7, 8 und so weiter. Ich hätte gerne eine einzigartige Gruppe für jede Jahreszeit-Saison-Kombination. Gibt es eine Möglichkeit, dies mit einem benutzerdefinierten DateOffset zu tun? Würde es eine Unterklasse erfordern? Oder mache ich lieber eine Saisonspalte und mache dann: grouper = df.groupby([df['season'], df.index.year])
.Python-Pandas: Erstellen eines saisonalen DateOffset-Objekts?
Aktueller Code ist hässlich:
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])