Seite 1 von 1

Python Pandas Merge Tabellen mit Conditions

Verfasst: Samstag 16. September 2023, 10:42
von Je1ns
Hi zusammen, ich würde gerne mit Python Pandas zwei dataframes mergen. Der merge soll als inner join mit zwei Conditions realisiert werden:
Ich will aus dem zweiten Dataframe nur die Zeilen mergen, den "Purchase" als Value haben und bei denen die Zeile Date > als die Zeile Date im anderen Dataframe. Ich habe es so probiert:
merged_df = df1.merge(df2[(df2['Art'] == "Purchase") & (df2["Datum"] > df1["Datum"])], on='Name')
Die zweite Conditions mit dem Datumsvergleich funktioniert leider nicht- der merge läuft durch und liefert keine Ergebnisse...
Jemand eine Idee wie ich hier die Code-Zeile sinnvoll abändern kann?
Ganz lieben Dank und ein gutes WE, Jens

Re: Python Pandas Merge Tabellen mit Conditions

Verfasst: Samstag 16. September 2023, 11:46
von __blackjack__
@Je1ns: Das vergleicht ja in der zweiten Teilbedingung die "Datum"-Spalten von zwei verschiedenen DataFrames und funktioniert auch nur wenn beide die gleiche Länge (und den gleichen Index) haben. Das passiert Zeilenweise, also ist überhaupt nicht garantiert, dass die beiden "Datum"-Werte zum gleichen "Name"-Wert gehören. Für diese Teilbedingung muss man erst mergen und dann kann man selektieren.

Edit: Oder man benutzt die "Name"-Spalte in beiden DataFrames als Index.