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: 13237
- 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.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.