Pandas DataFrame DataFrame.transform()-Funktion

Minahil Noor 30 Januar 2023
  1. Syntax von pandas.DataFrame.transform()
  2. Beispiel-Codes: DataFrame.transform()
  3. Beispielcodes: DataFrame.transform() zur Verwendung von sqrt Zeichenkette als Funktion
  4. Beispielcodes: DataFrame.transform() zur Übergabe der Liste der Funktionen
  5. Funktion DataFrame.apply() vs Funktion DataFrame.transform()
Pandas DataFrame DataFrame.transform()-Funktion

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.

Verwandter Artikel - Pandas DataFrame