Heim >Backend-Entwicklung >Python-Tutorial >Wie wende ich eine Funktion auf mehrere Spalten in einem Pandas DataFrame an?

Wie wende ich eine Funktion auf mehrere Spalten in einem Pandas DataFrame an?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 15:16:12529Durchsuche

How to Apply a Function to Multiple Columns in a Pandas DataFrame?

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:

  • new_column_name ist der Name der neuen Spalte, in der die Ergebnisse der Funktion gespeichert werden.
  • your_function ist die Benutzerdefinierte Funktion, die zwei Eingaben entgegennimmt und die gewünschte Ausgabe zurückgibt.
  • x stellt jede Zeile des Datenrahmens dar, und x.column_1 und x.column_2 greifen auf die Werte aus den angegebenen Spalten zu.
  • axis=1 gibt an, dass die Funktion auf jede Zeile und nicht auf jede Spalte angewendet wird.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn