Ich habe mit Pandas in Python zwei Datenrahmen gemacht:Ändern den Wert in einem Datenrahmen Spalte auf dem Wert von zwei Spalten in einem diffrent Datenrahmen je
df1
id business state inBusiness
1 painter AL no
2 insurance AL no
3 lawyer OH no
4 dentist NY yes
...........
df2
id business state
1 painter NY
2 painter AL
3 builder TX
4 painter AL
......
Grundsätzlich mag ich Wert des ‚InBusiness‘ setzen in df1 auf 'yes', wenn in df2 eine Instanz der genau gleichen Kombination aus Geschäft und Standort existiert.
Wenn zum Beispiel painter/AL in df2 existiert, dann wird für alle Instanzen von painter/AL in df1 der Wert 'inBusiness' auf yes gesetzt.
Das Beste, was ich mit jetzt kommen kann, ist dies:
for index, row in df2.iterrows():
df1[ (df1.business==str(row['business'])) & (df1.state==str(row['state']))]['inBusiness'] = 'Yes'
aber der erste Datenrahmen kann potenziell Hunderttausende von Zeilen Schleife hat für jede Zeile durch in dem zweiten Datenrahmen so dass diese Methode nicht ist sehr zuverlässig. Gibt es einen schönen One-Liner, den ich hier verwenden kann, der auch schnell wäre?
. @ Grün kombinieren zwei Spalten, wo Sie etwas wie painterNY in beiden Tabellen haben dann "JOIN" die beiden Tabellen. – Merlin