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]})
Und eine Funktion:
def get_sublist(sta, end): return mylist[sta:end+1]
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)
Hier ist eine Aufschlüsselung des Codes:
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']
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!