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
Python Pandas Merge Tabellen mit Conditions
- __blackjack__
- User
- Beiträge: 13931
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
Edit: Oder man benutzt die "Name"-Spalte in beiden DataFrames als Index.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware