Comment appliquer une fonction à une colonne dans Pandas Dataframe
-
Les méthodes
apply()
ettransform()
de Pandas -
Utilisez
apply()
pour appliquer une fonction à la colonne de Pandas DataFrame -
Utilisez
transform()
pour appliquer une fonction à une colonne de Pandas DataFrame
Dans Pandas, les colonnes et les cadres de données peuvent être transformés et manipulés à l’aide de méthodes telles que apply()
et transform()
. Les transformations souhaitées sont passées en argument aux méthodes sous forme de fonctions. Chaque méthode a ses différences subtiles et son utilité. Cet article présente la manière d’appliquer une fonction à une colonne ou à une DataFrame entière.
Les méthodes apply()
et transform()
de Pandas
Les méthodes apply()
et transform()
opèrent toutes deux sur des colonnes individuelles et sur l’ensemble du DataFrame. La méthode apply()
applique la fonction le long d’un axe spécifié. Elle transmet les colonnes comme un DataFrame à la fonction personnalisée, tandis qu’une méthode transform()
transmet les colonnes individuelles comme Pandas Series
à la fonction personnalisée.
La sortie de la méthode apply()
est reçue sous la forme d’un dataframe ou d’une Series
selon l’entrée, alors qu’elle est reçue sous la forme d’une séquence pour la méthode transform()
. La syntaxe des méthodes apply()
et transform()
est identique à celle de la méthode :
Dataframe.apply(customFunction, axis=0)
Dataframe.transform(customFunction, axis=0)
Les arguments correspondent à
customFunction
: la fonction à appliquer à la trame ou à la série de données.axis
: 0 fait référence àrows
, et 1 fait référence àcolumns
; la fonction doit être appliquée soit sur les rows, soit sur les columns.
Utilisez apply()
pour appliquer une fonction à la colonne de Pandas DataFrame
Maintenant que nous avons maîtrisé les bases, mettons la main sur les codes et comprenons comment utiliser la méthode apply()
pour appliquer une fonction à une colonne d’un dataframe.
Nous utiliserons l’exemple de dataframe comme ci-dessous.
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)
L’exemple de code permettant d’appliquer une fonction à l’ensemble du DataFrame est présenté ci-dessous.
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)
Production :
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
Comme vu ci-dessus, la fonction peut être appliquée à l’ensemble de la dataframe.
Appliquer une fonction à une seule colonne
Voyons ce qui se passe lorsque la fonction est appliquée le long d’une seule colonne.
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)
Production :
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
Utilisez transform()
pour appliquer une fonction à une colonne de Pandas DataFrame
Voyons comment utiliser la méthode transform()
pour appliquer une fonction à une colonne de dataframe. Nous utiliserons le même exemple de dataframe que ci-dessus.
L’exemple de code pour appliquer une fonction à l’ensemble du DataFrame est présenté ci-dessous.
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)
Production :
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
Comme vu ci-dessus, la fonction peut être appliquée à l’ensemble du dataframe.
Appliquer une fonction à une seule colonne
Voyons ce qui se passe lorsque la fonction est appliquée le long d’une seule colonne.
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)
Production :
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
Article connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme