Série Pandas Series.map() Fonction
-
Syntaxe de
pandas.Series.map() -
Exemples de codes :
Series.map() -
Exemples de codes :
Series.map()pour passer un dictionnaire en paramètrearg -
Exemples de codes :
Series.map()pour passer une fonction comme paramètrearg -
Codes d’exemple :
Series.map()pour l’appliquer sur un DataFrame
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.