Wie wende ich eine Funktion auf eine Spalte im Pandas-Dataframe an
-
Pandas
apply()
undtransform()
Methoden -
Verwenden Sie
apply()
, um eine Funktion auf Pandas DataFrame-Spalte anzuwenden -
Verwenden Sie
transform()
, um eine Funktion auf Pandas DataFrame-Spalte anzuwenden
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)
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
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum