Anwenden einer Funktion auf mehrere Spalten eines Pandas-Datenrahmens
Die Situation ist wie folgt: Eine Funktion und ein Datenrahmen werden definiert und die Ziel ist es, die Funktion auf zwei bestimmte Spalten des Datenrahmens anzuwenden, um eine neue Spalte zu generieren. Der Versuch, die Apply-Methode mit der Funktion zu verwenden, führt jedoch zu einem Fehler.
Um dieses Problem zu beheben, gibt es mehrere Ansätze:
Lambda-Ausdruck mit Spaltennamen
Eine prägnante und lesbare Lösung ist die Verwendung eines Lambda-Ausdrucks innerhalb der Apply-Methode:
df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
Dieser Ansatz direkt verwendet die Spaltennamen anstelle von numerischen Indizes, wodurch es weniger fehleranfällig ist.
Beispiel mit Beispieldaten
Bedenken Sie die Beispieldaten:
df = pd.DataFrame({'ID':['1', '2', '3'], 'col_1': [0, 2, 3], 'col_2':[1, 4, 5]}) mylist = ['a', 'b', 'c', 'd', 'e', 'f']
Durch Ausführen des vorherigen Codes wird eine neue Spalte, col_3, generiert, die das gewünschte enthält Ergebnis:
ID col_1 col_2 col_3 0 1 0 1 [a, b] 1 2 2 4 [c, d, e] 2 3 3 5 [d, e, f]
Eckige Klammern für nicht standardmäßige Spaltennamen
Wenn die Spaltennamen Leerzeichen enthalten oder mit vorhandenen Datenrahmenattributen übereinstimmen, können eckige Klammern verwendet werden:
df['col_3'] = df.apply(lambda x: f(x['col 1'], x['col 2']), axis=1)
Das obige ist der detaillierte Inhalt vonWie wende ich eine Funktion auf mehrere Pandas-Datenrahmenspalten an und erstelle eine neue Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!