Heim >Backend-Entwicklung >Python-Tutorial >Wie wende ich eine Funktion auf mehrere Spalten in einem Pandas DataFrame an?
Anwenden von Funktionen auf mehrere Spalten eines Pandas-Datenrahmens
Angenommen, wir haben einen Datensatz in einem Pandas-Datenrahmen mit mehreren Spalten und möchten dies tun Wenden Sie eine benutzerdefinierte Funktion auf zwei dieser Spalten an. Dies kann eine häufige Aufgabe bei der Datenmanipulation und -analyse sein. Hier ist eine Schritt-für-Schritt-Anleitung, um dies zu erreichen:
1. Definieren Sie die Funktion:
Definieren Sie eine benutzerdefinierte Funktion, die zwei Eingaben entgegennimmt und die Werte aus den beiden Spalten darstellt. Diese Funktion sollte die gewünschte Operation an diesen Eingängen ausführen.
2. Wenden Sie die Funktion mit Lambda an:
Pandas bietet eine Lambda-Funktion, die es uns ermöglicht, eine Funktion auf jede Zeile eines Datenrahmens anzuwenden. Wir können dies nutzen, um unsere benutzerdefinierte Funktion auf die ausgewählten Spalten anzuwenden.
Die Syntax zum Anwenden einer Funktion auf mehrere Spalten mithilfe von Lambda lautet:
df['new_column_name'] = df.apply(lambda x: your_function(x.column_1, x.column_2), axis=1)
Wobei:
3. Beispiel:
Betrachten Sie den folgenden Beispieldatenrahmen:
df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
Angenommen, wir möchten eine neue Spalte namens „col_3“ erstellen, die eine Unterliste der ursprünglichen Liste mylist basierend auf Werten enthält in col_1 und col_2. Wir können eine Funktion get_sublist wie folgt definieren:
def get_sublist(sta, end): return ['a', 'b', 'c', 'd', 'e', 'f'][sta:end+1]
Jetzt können wir diese Funktion mit Lambda anwenden als:
df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
Dadurch wird eine neue Spalte „col_3“ im Datenrahmen erstellt mit die gewünschten Unterlisten.
4. Alternativen:
Die Verwendung von Lambda ist ein prägnanter und vielseitiger Ansatz zum Anwenden von Funktionen auf mehrere Datenrahmenspalten. Wenn Sie jedoch eine explizitere Methode bevorzugen, können Sie die Methode apply() auch mit einer benutzerdefinierten Funktion verwenden, die eine Serie als Eingabe verwendet. Bei diesem Ansatz wird eine Funktion definiert, die eine einzelne Eingabe, die eine Zeile darstellt, entgegennimmt und diese bestimmte Zeile dann nach Bedarf manipuliert.
Das obige ist der detaillierte Inhalt vonWie wende ich eine Funktion auf mehrere Spalten in einem Pandas DataFrame an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!