Fonction Pandas DataFrame DataFrame.transform()

Minahil Noor 30 janvier 2023
  1. Syntaxe de pandas.DataFrame.transform()
  2. Exemples de codes : DataFrame.transform()
  3. Exemples de codes : DataFrame.transform() pour utiliser la chaîne sqrt comme fonction
  4. Exemples de codes : DataFrame.transform() pour passer la liste des fonctions
  5. Fonction DataFrame.apply() vs DataFrame.transform()
Fonction Pandas DataFrame DataFrame.transform()

Python Pandas DataFrame.transform() applique une fonction sur un DataFrame et transforme le DataFrame. La fonction à appliquer est passée en paramètre à la fonction transform(). Le DataFrame transformé doit avoir la même longueur d’axe que le DataFrame d’origine.

Syntaxe de pandas.DataFrame.transform()

DataFrame.transform(func, axis, *args, **kwargs)

Paramètres

func C’est la fonction à appliquer au DataFrame. Elle apporte un changement dans les valeurs du DataFrame. Il peut s’agir d’une fonction, d’une chaîne de noms de fonctions, d’une liste de fonctions ou de noms de fonctions, ou d’un dictionnaire d’étiquettes d’axes.
axis C’est un entier ou une chaîne de caractères. Il indique l’axe cible sous forme de lignes ou de colonnes. Il peut être 0 ou index pour les lignes et 1 ou columns pour les colonnes.
*args Ce sont les arguments de position à passer à la fonction.
**kwargs Ce sont les arguments supplémentaires de mots-clés à passer à la fonction.

Renvoie

Il retourne une DataFrame transformée qui a la même longueur que la DataFrame originale. Si la DataFrame retournée a une longueur inégale, la fonction génère une ValueError.

Exemples de codes : DataFrame.transform()

Essayons d’abord cette fonction en ajoutant un nombre à chaque valeur de la DataFrame.

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)

Voici l’exemple de la DataFrame,

    A   B
0   6  60
1  20  50
2  80   7
3  78  67
4  95  54
5  98  34

Cette fonction n’a qu’un seul paramètre obligatoire, à savoir func. Nous allons maintenant utiliser cette fonction pour ajouter 20 à chaque valeur de la DataFrame.

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)

Production:

     A   B
0   26  80
1   40  70
2  100  27
3   98  87
4  115  74
5  118  54

Le mot-clé lambda est utilisé pour déclarer une fonction d’addition anonyme ici.

Exemples de codes : DataFrame.transform() pour utiliser la chaîne sqrt comme fonction

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)

Production:

          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

Ici, au lieu de passer une fonction lambda, nous avons passé le nom de la fonction comme une chaîne de caractères.

Exemples de codes : DataFrame.transform() pour passer la liste des fonctions

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)

Production:

          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

Nous avons passé une liste de deux noms de fonctions, à savoir sqrt, exp, func. La DataFrame retournée contient deux colonnes supplémentaires en raison d’une fonction supplémentaire.

Fonction DataFrame.apply() vs DataFrame.transform()

Nous pouvons également obtenir les résultats ci-dessus en utilisant DataFrame.apply() fonction. Mais si nous comparons ces deux fonctions, nous dirons que la fonction DataFrame.transform() est plus efficace pour gérer les manipulations complexes.

Article connexe - Pandas DataFrame