map de Pandas Python

Suraj Joshi 21 février 2021
map de Pandas Python

Ce tutoriel explique comment nous pouvons remplacer les valeurs d’une série de pandas par une autre valeur en utilisant la méthode Series.map().

import pandas as pd

my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])

print(my_series, "\n")

Production :

1    85
2    87
3    90
4    89
dtype: int64

Nous allons utiliser la série my_series affichée dans l’exemple ci-dessus pour expliquer le fonctionnement de la méthode map() dans Pandas.

pandas.Series.map()

Syntaxe

Series.map(arg, na_action=None)

Il renvoie un objet Series en remplaçant les valeurs de l’objet Series de l’appelant en fonction du paramètre arg. Le paramètre arg peut être une function, un dictionnaire ou un objet Series qui détermine quelles sont les nouvelles valeurs de l’objet Series.

Le paramètre na_action peut prendre comme valeur None ou 'ignore'. La valeur 'ignore' de na_action indique qu’il faut ignorer les valeurs de NaN de l’objet Series et ne rien leur faire.

Exemple : Utilisez la méthode map() pour une série de Pandas

import pandas as pd

my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])

altered_series = my_series.map({85: 80, 87: 80, 90: 90, 89: 80})

print("Initial Series:")
print(my_series, "\n")

print("Altered Series:")
print(altered_series, "\n")

Production :

Initial Series:
1    85
2    87
3    90
4    89
dtype: int64

Altered Series:
1    80
2    80
3    90
4    80
dtype: int64

Il substitue les éléments de la my_series en fonction des valeurs spécifiées dans le dictionnaire passé en argument à la méthode map().

Nous pouvons également utiliser des fonctions pour changer les valeurs de la série Pandas en utilisant la méthode map().

import pandas as pd

my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])

altered_series = my_series.map(lambda x: str(x) + ".00")

print("Initial Series:")
print(my_series, "\n")

print("Altered Series:")
print(altered_series, "\n")

Production :

Initial Series:
1    85
2    87
3    90
4    89
dtype: int64

Altered Series:
1    85.00
2    87.00
3    90.00
4    89.00
dtype: object

Elle prend chaque élément de my_series et ajoute .00 à la fin de chaque élément de my_series.

Exemple : Utilisez la méthode map() pour modifier une colonne particulière d’un DataFrame

import pandas as pd

df_1 = pd.DataFrame(
    {
        "Column 1": [85, 87, 90, 89],
        "Column 2": [55, 54, 56, 66],
        "Column 3": [23, 95, 65, 45],
    },
    index=["1", "2", "3", "4"],
)

print("Initial DataFrame:")
print(df_1, "\n")

df_1["Column 1"] = df_1["Column 1"].map(lambda x: x * 10)

print("DataFrame after changing Column 1:")
print(df_1)

Production :

Initial DataFrame:
   Column 1  Column 2  Column 3
1        85        55        23
2        87        54        95
3        90        56        65
4        89        66        45

DataFrame after changing Column 1:
   Column 1  Column 2  Column 3
1       850        55        23
2       870        54        95
3       900        56        65
4       890        66        45

Il appliquera la fonction lambda uniquement à la Colonne 1 du DataFrame en utilisant la méthode map(). Comme une seule colonne est un objet Series, nous pouvons utiliser la méthode map() avec une colonne de DataFrame. Nous assignons alors l’objet Series retourné par la méthode map() à la Column 1 du DataFrame df_1. De cette façon, nous pouvons changer les valeurs de la colonne particulière seulement d’un DataFrame.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas Series