Appliquer une fonction à plusieurs colonnes dans Pandas DataFrame

Manav Narula 23 janvier 2022
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.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

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.

LinkedIn

Article connexe - Pandas DataFrame