Appliquer une fonction à plusieurs colonnes dans Pandas DataFrame
Cet article présente la manière d’appliquer une fonction à plusieurs colonnes dans Pandas DataFrame. Nous utiliserons le même DataFrame que ci-dessous dans tous les exemples de codes.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
Production :
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
Utilisez apply()
pour appliquer des fonctions aux colonnes dans les Pandas
La méthode apply()
permet d’appliquer une fonction pour un DataFrame entier, soit à travers des colonnes ou des lignes. Nous définissons le paramètre axis
comme 0 pour les lignes et 1 pour les colonnes.
Dans les exemples ci-dessous, nous allons incrémenter la valeur d’un DataFrame type en utilisant la fonction que nous avons définie précédemment :
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
def x(a):
return a + 1
df_new = df.apply(x, axis=1)
print("The original dataframe:")
print(df)
print("The new dataframe:")
print(df_new)
Production :
The original dataframe:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
The new dataframe:
a b c d
0 6 7 8 9
1 2 10 13 15
2 5 9 11 7
Nous pouvons également appliquer une fonction à plusieurs colonnes, comme indiqué ci-dessous :
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print("The original dataframe:")
print(df)
def func(x):
return x[0] + x[1]
df["e"] = df.apply(func, axis=1)
print("The new dataframe:")
print(df)
Production :
The original dataframe:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
The new dataframe:
a b c d e
0 5 6 7 8 11
1 1 9 12 14 10
2 4 8 10 6 12
La nouvelle colonne e
annexée est la somme des données des colonnes a
et b
. Le DataFrame lui-même est l’argument caché passé à la fonction. Les colonnes peuvent être accédées avec l’index comme dans l’exemple ci-dessus, ou avec le nom de la colonne, comme indiqué ci-dessous.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print("The original dataframe:")
print(df)
df["e"] = df.apply(lambda x: x.a + x.b, axis=1)
print("The new dataframe:")
print(df)
Il effectue la même opération que dans l’exemple ci-dessus. Nous utilisons ici une fonction lambda
. x.a
et x.b
font référence aux colonnes a et b dans le dataframe.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInArticle 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