Pandas DataFrame DataFrame.transform()-Funktion
-
Syntax von
pandas.DataFrame.transform()
-
Beispiel-Codes:
DataFrame.transform()
-
Beispielcodes:
DataFrame.transform()
zur Verwendung vonsqrt
Zeichenkette als Funktion -
Beispielcodes:
DataFrame.transform()
zur Übergabe der Liste der Funktionen -
Funktion
DataFrame.apply()
vs FunktionDataFrame.transform()
Python Pandas DataFrame.transform()
wendet eine Funktion auf einen DataFrame
an und transformiert den DataFrame
. Die anzuwendende Funktion wird als Parameter an die Funktion transform()
übergeben. Der transformierte DataFrame
sollte die gleiche Achsenlänge wie der ursprüngliche DataFrame
haben.
Syntax von pandas.DataFrame.transform()
DataFrame.transform(func, axis, *args, **kwargs)
Parameter
func |
Es ist die Funktion, die auf den DataFrame anzuwenden ist. Sie bringt eine Änderung der Werte des DataFrame mit sich. Es kann eine Funktion, eine Funktionsnamenszeichenkette, eine Liste von Funktionen oder Funktionsnamen oder ein Dictionary von Achsenbeschriftungen sein. |
axis |
Es ist eine ganze Zahl oder eine Zeichenkette. Sie gibt über die Zielachse entweder Zeilen oder Spalten an. Sie kann 0 oder Index für Zeilen und 1 oder Spalten für Spalten sein. |
*args |
Dies sind die Positionsargumente, die an die Funktion übergeben werden müssen. |
**kwargs |
Dies sind die zusätzlichen Schlüsselwortargumente, die an die Funktion übergeben werden müssen. |
Zurück
Es gibt einen transformierten DataFrame
zurück, der die gleiche Länge wie der ursprüngliche DataFrame
hat. Wenn der zurückgegebene DataFrame
eine ungleiche Länge hat, gibt die Funktion einen ValueError
aus.
Beispiel-Codes: DataFrame.transform()
Versuchen wir zunächst diese Funktion, indem wir zu jedem Wert des DataFrame
eine Zahl addieren.
import pandas as pd
dataframe = pd.DataFrame({
'A':
{0: 6,
1: 20,
2: 80,
3: 78,
4: 95},
'B':
{0: 60,
1: 50,
2: 7,
3: 67,
4: 54}
})
print(dataframe)
Das Beispiel DataFrame
ist,
A B
0 6 60
1 20 50
2 80 7
3 78 67
4 95 54
5 98 34
Diese Funktion hat nur einen obligatorischen Parameter, nämlich func
. Nun werden wir diese Funktion verwenden, um 20 zu jedem Wert des DataFrame
zu addieren.
import pandas as pd
dataframe = pd.DataFrame(
{"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func=lambda x: x + 20)
print(dataframe1)
Ausgabe:
A B
0 26 80
1 40 70
2 100 27
3 98 87
4 115 74
5 118 54
Das Schlüsselwort lambda
wird verwendet, um hier eine anonyme Additionsfunktion zu deklarieren.
Beispielcodes: DataFrame.transform()
zur Verwendung von sqrt
Zeichenkette als Funktion
import pandas as pd
dataframe = pd.DataFrame(
{"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func="sqrt")
print(dataframe1)
Ausgabe:
A B
0 2.449490 7.745967
1 4.472136 7.071068
2 8.944272 2.645751
3 8.831761 8.185353
4 9.746794 7.348469
5 9.899495 5.830952
Anstatt eine lambda
-Funktion zu übergeben, haben wir hier den Funktionsnamen als Zeichenkette übergeben.
Beispielcodes: DataFrame.transform()
zur Übergabe der Liste der Funktionen
import pandas as pd
dataframe = pd.DataFrame(
{"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func=["sqrt", "exp"])
print(dataframe1)
Ausgabe:
A B
sqrt exp sqrt exp
0 2.449490 4.034288e+02 7.745967 1.142007e+26
1 4.472136 4.851652e+08 7.071068 5.184706e+21
2 8.944272 5.540622e+34 2.645751 1.096633e+03
3 8.831761 7.498417e+33 8.185353 1.252363e+29
4 9.746794 1.811239e+41 7.348469 2.830753e+23
Wir haben eine Liste von zwei Funktionsnamen, d.h. ['sqrt', 'exp']
als func
übergeben. Der zurückgegebene DataFrame
enthält zwei zusätzliche Spalten aufgrund einer zusätzlichen Funktion.
Funktion DataFrame.apply()
vs Funktion DataFrame.transform()
Wir können die oben genannten Ergebnisse auch mit der Funktion DataFrame.apply()
function erzielen. Aber wenn wir diese beiden Funktionen vergleichen, werden wir sagen, dass die DataFrame.transform()
Funktion effizienter ist, um die komplexen Manipulationen zu handhaben.