Wie wende ich eine Funktion auf eine Spalte im Pandas-Dataframe an

Sathiya Sarathi 21 Dezember 2022
  1. Pandas apply() und transform() Methoden
  2. Verwenden Sie apply(), um eine Funktion auf Pandas DataFrame-Spalte anzuwenden
  3. Verwenden Sie transform(), um eine Funktion auf Pandas DataFrame-Spalte anzuwenden
Wie wende ich eine Funktion auf eine Spalte im Pandas-Dataframe an

In Pandas können Spalten und Dataframe mit Methoden wie apply() und transform() transformiert und manipuliert werden. Die gewünschten Transformationen werden als Argumente an die Methoden als Funktionen übergeben. Jede Methode hat ihre subtilen Unterschiede und ihren Nutzen. Dieser Artikel stellt vor, wie man eine Funktion auf eine Spalte oder einen ganzen Dataframe anwendet.

Pandas apply() und transform() Methoden

Beide Methoden apply() und transform() operieren auf einzelne Spalten und den gesamten Dataframe. Die apply() Methode wendet die Funktion entlang einer bestimmten Achse an. Sie übergibt die Spalten als Dataframe an die benutzerdefinierte Funktion, während eine transform()-Methode einzelne Spalten als Pandas Series an die benutzerdefinierte Funktion übergibt.

Die Ausgabe der Methode apply() wird in Abhängigkeit von der Eingabe in Form eines Dataframes oder einer Series empfangen, während sie bei der Methode transform() als Sequenz empfangen wird. Sowohl die Syntax der apply()- als auch der transform()-Methode ähneln der Syntax von apply() und transform():

Dataframe.apply(customFunction, axis=0)
Dataframe.transform(customFunction, axis=0)

Die Argumente entsprechen

  • customFunction: die Funktion, die auf den Dataframe oder die Datenreihe anzuwenden ist.
  • axis: 0 bezieht sich auf 'rows' und 1 auf 'columns'; die Funktion muß entweder auf Zeilen oder auf Spalten angewendet werden.

Verwenden Sie apply(), um eine Funktion auf Pandas DataFrame-Spalte anzuwenden

Jetzt haben wir die Grundlagen gemeistert, lassen Sie uns die Codes in die Hand nehmen und verstehen, wie man die apply() Methode verwendet, um eine Funktion auf eine Dataframespalte anzuwenden.

Wir werden das folgende Beispiel für einen Dataframe verwenden.

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)

Funktion auf eine Dataframe-Spalte anwenden - Beispiel

Der Beispielcode zum Anwenden einer Funktion auf den gesamten DataFrame wird unten gezeigt.

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df = df.apply(add_2)
print(df)

Ausgabe:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A   B   C
0  3   4   5
1  6   7   8
2  9  10  11

Wie oben gezeigt, kann die Funktion auf den gesamten Dataframe angewendet werden.

Anwenden einer Funktion auf eine einzelne Spalte

Sehen wir uns an, was passiert, wenn die Funktion entlang einer einzelnen Spalte angewendet wird.

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df["A"] = df["A"].apply(add_2)
print(df)

# or #

df["A"].transform(add_2)
print(df)

Ausgabe:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A  B  C
0  3  2  3
1  6  5  6
2  9  8  9

Verwenden Sie transform(), um eine Funktion auf Pandas DataFrame-Spalte anzuwenden

Sehen wir uns an, wie man die transform() Methode verwendet, um eine Funktion auf eine Dataframespalte anzuwenden. Wir werden den gleichen Beispiel-Dataframe wie oben verwenden.

Der Beispielcode zum Anwenden einer Funktion auf den gesamten Dataframe wird unten gezeigt.

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df = df.transform(add_2)
print(df)

Ausgabe:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A   B   C
0  3   4   5
1  6   7   8
2  9  10  11

Wie oben gezeigt, kann die Funktion auf den gesamten Dataframe angewendet werden.

Anwenden einer Funktion auf eine einzelne Spalte

Sehen wir uns an, was passiert, wenn die Funktion entlang einer einzelnen Spalte angewendet wird.

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df["A"] = df["A"].transform(add_2)
print(df)

Ausgabe:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A  B  C
0  3  2  3
1  6  5  6
2  9  8  9

Verwandter Artikel - Pandas DataFrame