pandas: Summe nach Datumsbereich

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
SinaS
User
Beiträge: 11
Registriert: Freitag 11. März 2022, 14:04

Hallo zusammen,

ich scheitere gerade an einer pandas Herausforderung (auf meinem Level) und bitte um Nachsicht für die wahrscheinlich triviale Frage :) :

Gegeben Sei ein pandas-dataframe mit den Spalten von, bis und Prozent:
01.01.2020 - 30.03.2020 5 %
01.03.2020 - 30.03.2020 5 %

Ich möchte eine Funktion bauen, die aus dem o.g. dataframe für jeden Monat eine neue Datenzeile anlegt und dann die Werte summiert, wenn der Datumsbereich stimmt. Im Beispiel hier soll folgendes dataframe das Ergebnis sein:
2020/01 5%
2020/02 5%
2020/03 10%

Wie mache ich das am geschmeidigsten?

Danke!!
Sina S
SinaS
User
Beiträge: 11
Registriert: Freitag 11. März 2022, 14:04

Hallo zusammen,

ich konnte es selbst lösen:

Bestimmung von/bis via min- bzw. max-Funktion von pandas. Danach:

Code: Alles auswählen

df_monatsbezogen = pd.DataFrame({'Datum':pd.date_range(start=von, end=bis, freq='MS')})
df_monatsbezogen["Summe"] = df_monatsbezogen["Datum"].apply(lambda x: df1.loc[(df1['Von'] <= x) & (df1['Bis'] >= x) , 'Prozent'].sum())
Antworten