Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Funktion elementweise auf mehrere Pandas DataFrame-Spalten anwenden?

Wie kann ich eine Funktion elementweise auf mehrere Pandas DataFrame-Spalten anwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 01:15:10346Durchsuche

How Can I Apply a Function Element-Wise to Multiple Pandas DataFrame Columns?

Pandas: Anwenden von Funktionen auf mehrere Spalten

Problem:

Gegeben eine Funktion und ein Pandas-DataFrame mit mehreren Spalten, Wie können wir die Funktion elementweise auf jedes Paar entsprechender Werte in der anwenden? Spalten?

Lösung:

Es gibt eine effiziente Möglichkeit, dies mit der Lambda-Funktion und der Anwendungsmethode von Pandas zu erreichen:

def get_sublist(sta, end):
    return mylist[sta:end+1]

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

Dies gilt Fügen Sie die Funktion get_sublist jeder Zeile des DataFrame hinzu und verwenden Sie dabei die Werte in den Spalten „col_1“ und „col_2“ als Eingaben. Das Ergebnis ist eine neue Spalte, „col_3“, die die berechneten Unterlisten enthält.

Verwendung:

Betrachten Sie das folgende Beispiel:

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
mylist = ['a','b','c','d','e','f']

# Apply the function and create a new column
df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)

print(df)

Ausgabe:

  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']

Das obige ist der detaillierte Inhalt vonWie kann ich eine Funktion elementweise auf mehrere Pandas DataFrame-Spalten anwenden?. 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