Seite 1 von 1

pandas: Summe nach Datumsbereich

Verfasst: Freitag 11. März 2022, 14:15
von SinaS
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

Re: pandas: Summe nach Datumsbereich

Verfasst: Freitag 11. März 2022, 15:23
von SinaS
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())