Série Pandas Series.map() Fonction

Minahil Noor 30 janvier 2023
  1. Syntaxe de pandas.Series.map()
  2. Exemples de codes : Series.map()
  3. Exemples de codes : Series.map() pour passer un dictionnaire en paramètre arg
  4. Exemples de codes : Series.map() pour passer une fonction comme paramètre arg
  5. Codes d’exemple : Series.map() pour l’appliquer sur un DataFrame
Série Pandas Series.map() Fonction

La fonction Python Pandas Series.map() substitue les valeurs d’une Series. Les valeurs substituées peuvent être dérivées d’une Series, d’un dictionnaire ou d’une fonction. Cette fonction ne fonctionne que pour une Series. Si nous appliquons cette fonction à une DataFrame, alors elle générera une AttributeError.

Syntaxe de pandas.Series.map()

Series.map(arg, na_action=None)

Paramètres

arg C’est une fonction, un dictionnaire, ou une Series. Les valeurs à substituer sont dérivées de cette fonction, de ce dictionnaire ou de cette Series.
na_action Ce paramètre accepte deux valeurs : None et ignore. Sa valeur par défaut est None. Si sa valeur est ignore, alors il ne fait pas correspondre les valeurs dérivées aux valeurs NaN. Il ignore les valeurs de NaN.

Renvoie

Il retourne une Series avec le même index que l’appelant.

Exemples de codes : Series.map()

Nous allons générer une Series qui contient les valeurs NaN pour vérifier la sortie après avoir passé le paramètre na_action.

import pandas as pd
import numpy as np

series = pd.Series(['Rose', 
                    'Lili', 
                    'Tulip', 
                    np.NaN, 
                    'Orchid', 
                    'Hibiscus', 
                    'Jasmine', 
                    'Daffodil',
                    np.NaN , 
                    'SunFlower', 
                    'Daisy'])

print(series)

L’exemple Series est,

0          Rose
1          Lili
2         Tulip
3           NaN
4        Orchid
5      Hibiscus
6       Jasmine
7      Daffodil
8           NaN
9     SunFlower
10        Daisy
dtype: object

Nous utilisons NumPy pour générer des valeurs NaN.

Le paramètre arg est un paramètre obligatoire. S’il n’est pas passé, la fonction génère une TypeError. Nous allons d’abord passer une série comme paramètre arg.

Pour mettre en correspondance deux séries, la dernière colonne de la première série doit être identique à l’index de la seconde série.

import pandas as pd
import numpy as np

first_series = pd.Series(
    [
        "Rose",
        "Lili",
        "Tulip",
        np.NaN,
        "Orchid",
        "Hibiscus",
        "Jasmine",
        "Daffodil",
        np.NaN,
        "SunFlower",
        "Daisy",
    ]
)

second_series = pd.Series(
    [23, 34, 67, 90, 21, 45, 29, 70, 56],
    index=[
        "Rose",
        "Lili",
        "Tulip",
        "Orchid",
        "Hibiscus",
        "Jasmine",
        "Daffodil",
        "SunFlower",
        "Daisy",
    ],
)

series1 = first_series.map(second_series)
print(series1)

Production:

0     23.0
1     34.0
2     67.0
3      NaN
4     90.0
5     21.0
6     45.0
7     29.0
8      NaN
9     70.0
10    56.0
dtype: float64

Notez que la fonction a substitué les valeurs après avoir comparé les deux Series.

Exemples de codes : Series.map() pour passer un dictionnaire en paramètre arg

import pandas as pd
import numpy as np

series = pd.Series(
    [
        "Rose",
        "Lili",
        "Tulip",
        np.NaN,
        "Orchid",
        "Hibiscus",
        "Jasmine",
        "Daffodil",
        np.NaN,
        "SunFlower",
        "Daisy",
    ]
)

dictionary = {
    "Rose": "One",
    "Lili": "Two",
    "Orchid": "Three",
    "Jasmine": "Four",
    "Daisy": "Five",
}

series1 = series.map(dictionary)
print(series1)

Production:

0       One
1       Two
2       NaN
3       NaN
4     Three
5       NaN
6      Four
7       NaN
8       NaN
9       NaN
10     Five
dtype: object

Les valeurs de la Series qui ne sont pas dans le dictionnaire sont remplacées par une valeur NaN.

Exemples de codes : Series.map() pour passer une fonction comme paramètre arg

Nous allons maintenant passer une fonction comme paramètre.

import pandas as pd
import numpy as np

series = pd.Series(
    [
        "Rose",
        "Lili",
        "Tulip",
        np.NaN,
        "Orchid",
        "Hibiscus",
        "Jasmine",
        "Daffodil",
        np.NaN,
        "SunFlower",
        "Daisy",
    ]
)

series1 = series.map("The name of the flower is {}.".format)
print(series1)

Production:

0          The name of the flower is Rose.
1          The name of the flower is Lili.
2         The name of the flower is Tulip.
3           The name of the flower is nan.
4        The name of the flower is Orchid.
5      The name of the flower is Hibiscus.
6       The name of the flower is Jasmine.
7      The name of the flower is Daffodil.
8           The name of the flower is nan.
9     The name of the flower is SunFlower.
10        The name of the flower is Daisy.
dtype: object

Ici, nous avons passé la fonction string.format() comme paramètre. Notez que la fonction a également été appliquée aux valeurs de NaN. Si nous ne voulons pas appliquer cette fonction aux valeurs NaN, alors nous passerons la valeur ignore au paramètre na_action.

import pandas as pd
import numpy as np

series = pd.Series(
    [
        "Rose",
        "Lili",
        "Tulip",
        np.NaN,
        "Orchid",
        "Hibiscus",
        "Jasmine",
        "Daffodil",
        np.NaN,
        "SunFlower",
        "Daisy",
    ]
)

series1 = series.map("The name of the flower is {}.".format, na_action="ignore")
print(series1)

Production:

0          The name of the flower is Rose.
1          The name of the flower is Lili.
2         The name of the flower is Tulip.
3                                      NaN
4        The name of the flower is Orchid.
5      The name of the flower is Hibiscus.
6       The name of the flower is Jasmine.
7      The name of the flower is Daffodil.
8                                      NaN
9     The name of the flower is SunFlower.
10        The name of the flower is Daisy.
dtype: object

L’exemple de code ci-dessus a ignoré les valeurs de NaN.

Codes d’exemple : Series.map() pour l’appliquer sur un DataFrame

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.map("The flower name is {}.".format)
print(dataframe1)

Production:

AttributeError: 'DataFrame' object has no attribute 'map'

La fonction a généré le AttributeError.

Article connexe - Pandas Series