Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine benutzerdefinierte Funktion auf mehrere Pandas DataFrame-Spalten anwenden, um eine neue Spalte zu erstellen?

Wie kann ich eine benutzerdefinierte Funktion auf mehrere Pandas DataFrame-Spalten anwenden, um eine neue Spalte zu erstellen?

Linda Hamilton
Freigeben: 2024-12-27 12:16:14
Original
817 Leute haben es durchsucht

How Can I Apply a Custom Function to Multiple Pandas DataFrame Columns to Create a New Column?

Anwenden einer Funktion auf mehrere Spalten in einem Pandas-DataFrame

Stellen Sie sich die folgende Situation vor, in der Sie einen DataFrame haben, der mehrere Spalten und eine benutzerdefinierte Funktion enthält Sie möchten elementweise auf diese Spalten anwenden, um eine neue zu erstellen Spalte.

Problem:

Angenommen, Sie haben einen DataFrame mit drei Spalten:

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
Nach dem Login kopieren

Und eine Funktion:

def get_sublist(sta, end):
    return mylist[sta:end+1]
Nach dem Login kopieren

Ihr Ziel ist es, get_sublist auf die Spalten „col_1“ und „col_2“ von df anzuwenden, um eine neue Spalte zu erhalten 'col_3', das die entsprechenden Unterlisten von 'mylist' enthält.

Lösung:

Um dies zu erreichen, können Sie die folgende Pandas-Operation verwenden:

df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
Nach dem Login kopieren

Hier ist eine Aufschlüsselung des Codes:

  • df.apply(): Wendet an Funktion elementweise für jede Zeile des DataFrame angegeben.
  • Lambda x: Eine anonyme Funktion, die ein einzelnes Argument x akzeptiert, das eine Zeile des DataFrame darstellt.
  • x: Die DataFrame-Zeile Objekt, das die Werte der Spalten „col_1“ und „col_2“ für die aktuelle Iteration enthält.
  • get_sublist(x.col_1, x.col_2): Ruft die Funktion get_sublist mit den Werten „col_1“ und „col_2“ aus der aktuellen Zeile auf.
  • axis=1: Gibt an, dass die Funktion auf jede Zeile des DataFrame angewendet werden soll, was zu Folgendem führt: eine neue Spalte.

Mit dieser Methode hat der resultierende DataFrame Folgendes Struktur:

  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']
Nach dem Login kopieren

Beachten Sie, dass Sie mit dieser Lösung jede benutzerdefinierte Funktion an die apply()-Methode übergeben und auf mehrere Spalten gleichzeitig anwenden können. Durch den Zugriff auf die Spaltenwerte über x.col_name können Sie Spaltennamen sicher verwenden, auch wenn sie Leerzeichen enthalten oder denselben Namen wie vorhandene DataFrame-Attribute haben.

Das obige ist der detaillierte Inhalt vonWie kann ich eine benutzerdefinierte Funktion auf mehrere Pandas DataFrame-Spalten anwenden, um eine neue Spalte zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage