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
.