2017-12-14 3 views
-1

Ich habe zwei Datenrahmen, df1 und df2.Pandas erstellen eine neue Spalte durch den Vergleich zweier Datenrahmen

df1:

ID  Label 
1  a 
2  b 
5  c 

df2:

ID 
1 
2 
3 

Ich möchte durch den Vergleich der beiden Datenrahmen eine neue Spalte "Label" in df2 erstellen. Wenn die IDs übereinstimmen, sollte die Bezeichnung in df2 der Bezeichnung in df1 entsprechen. Wenn die ID in df1 tritt nicht auf, ich will 0. Also die letzten df2 wie folgt aussehen:

ID  Label 
1  a 
2  b 
3  0 

Jede Hilfe geschätzt wird. Vielen Dank!

+0

https://pandas.pydata.org/pandas-docs/stable/merging.html –

Antwort

1

können Sie map verwenden und dann ersetzen NaN s mit fillna:

df2['Label'] = df2['ID'].map(df1.set_index('ID')['Label']).fillna(0) 
print (df2) 
    ID Label 
0 1  a 
1 2  b 
2 3  0 
+1

Keine Ahnung über die downvote für die Antwort und kümmert sich nicht genug, um die Frage zu verwerfen, aber die Frage könnte gegoogelt werden, um "pandas dataframes zu verschmelzen", also wenn ich eine Frage auf Faulheit schließen könnte, würde ich. Siehe: [Wie viel Forschungsaufwand wird von Stack Overflow-Benutzern erwartet?] (Https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) –

Verwandte Themen