Lassen Sie uns meine Datenrahmen sagen diese Daten enthält:wie eine neue Spalte auf den Werten anderer Spalten in Pandas Basis berechnen - Python
>>> df = pd.DataFrame({'a':['l1','l2','l1','l2','l1','l2'],
'b':['1','2','2','1','2','2']})
>>> df
a b
0 l1 1
1 l2 2
2 l1 2
3 l2 1
4 l1 2
5 l2 2
l1
entsprechen sollten 1
während l2
zu 2
entsprechen. Ich möchte eine neue Spalte 'c
' so erstellen, dass für jede Zeile c = 1
wenn a = l1
und b = 1
(oder a = l2
und b = 2
). Wenn a = l1
und b = 2
(oder a = l2
und b = 1
) dann c = 0
.
Der resultierende Datenrahmen sollte wie folgt aussehen:
a b c
0 l1 1 1
1 l2 2 1
2 l1 2 0
3 l2 1 0
4 l1 2 0
5 l2 2 1
Mein Datenrahmen ist sehr groß, so bin ich wirklich für den effizienteste Weg, um diese Pandas mit zu tun.
Interessant, aber es ist Ihre Lösung wesentlich weniger allgemein. Interessant ist, wie schlecht 'str [1]' Methoden im Vergleich zu einem einfachen Lambda sind. –
Sie haben nicht nach '(df.a ==' l2 ') == (df.b ==' 2 ')' gesucht. –
@StevenRumbalski Ich nehme an, die Beispieleingabe ist abgeschlossen, und 'a' hat nur Werte' l1' oder 'l2' und' b' nur ''1'' oder' '2''. Wenn "a! = 'L1'", muss es "l2" sein. – chlunde