Mein Ziel ist es, die Pandas Äquivalent der unter R Code zu erhalten:Pandas/Python Äquivalent von komplexen ifelse Spiel in R
df1$String_1_check = ifelse(df1$String_1 == df2[match(df1$String_2, df2$String_2), 1], TRUE, FALSE)
Wenn der Wert in der n-ten Reihe der Spalte String_1 von DF1 die erste Spalte entspricht von df2, wobei die nte Zeile der Spalte String_2 von df1 mit String_2 von df2 übereinstimmt, dann True in einer neuen Spalte String_1_check, sonst False in String_1_check.
df1 hat viele Instanzen der gleichen Werte in String_1 und String_2, und df2 hat nur eine Instanz jedes möglichen Werts in String_1. String_3 ist nicht eindeutig. Mit diesem Beispieldatenrahmen:
df1 = pd.DataFrame({'String_1': ['string 1', 'string 1', 'string 2', 'string 3', 'string 1'], 'String_2': ['string a', 'string a', 'string b', 'string a', 'string c']})
df2 = pd.DataFrame({'String_3': ['string 1', 'string 2', 'string 3'], 'String_2': ['string a', 'string b', 'string c']})
String_1 String_2
0 string 1 string a
1 string 1 string a
2 string 2 string b
3 string 3 string a
4 string 1 string c
String_3 String_2
0 string 1 string a
1 string 2 string b
2 string 3 string c
Die gewünschte Ausgabe wäre:
String_1 String_2 String_1_check
0 string 1 string a True
1 string 1 string a True
2 string 2 string b True
3 string 3 string a False
4 string 1 string c False
ich np.where
versucht habe, isin
, pd.match
(veraltete jetzt), aber noch keine Lösung gefunden.
Dies endete am besten für meine reale Datensituation. Vielen Dank! –