Series Pandas Series.map() Função
-
Sintaxe de
pandas.series.map()
-
Códigos de exemplo:
Series.map()
-
Códigos de exemplo:
Series.map()
para passar um Dicionário como parâmetroarg
-
Códigos de exemplo:
Series.map()
para passar uma função comoarg
Parâmetro -
Códigos de exemplo:
Series.map()
aplicar num DataFrame
Python Pandas Series.map()
função substitui os valores de uma Series
. Os valores substituídos podem ser derivados de um Series
, dicionário, ou função. Esta função funciona apenas para uma Series
. Se aplicarmos esta função a uma DataFrame
, então ela gerará um AttributeError
.
Sintaxe de pandas.series.map()
Series.map(arg, na_action=None)
Parâmetros
arg |
É uma função, dicionário, ou uma Series . Os valores a serem substituídos são derivados desta função, dicionário, ou Series . |
na_action |
Este parâmetro aceita dois valores: None e ignore . O seu valor por defeito é None . Se o seu valor é ignore então não mapeia os valores derivados para valores NaN. Ignora os valores NaN . |
Devolver
Devolve uma Series
com o mesmo índice que a pessoa que telefona.
Códigos de exemplo: Series.map()
Geraremos uma Series
que contém os valores NaN
para verificar a saída depois de passar o parâmetro 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)
O exemplo da Series
é,
0 Rose
1 Lili
2 Tulip
3 NaN
4 Orchid
5 Hibiscus
6 Jasmine
7 Daffodil
8 NaN
9 SunFlower
10 Daisy
dtype: object
Utilizamos NumPy
para gerar valores NaN
.
O parâmetro arg
é um parâmetro obrigatório. Se não for passado, então a função gera um TypeError
. Vamos primeiro passar uma série como parâmetro arg
.
Para mapear duas séries, a última coluna da primeira série deve ser a mesma que o índice da segunda 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)
Resultado:
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
Note-se que a função substituiu os valores depois de comparar as duas Series
.
Códigos de exemplo: Series.map()
para passar um Dicionário como parâmetro 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)
Resultado:
0 One
1 Two
2 NaN
3 NaN
4 Three
5 NaN
6 Four
7 NaN
8 NaN
9 NaN
10 Five
dtype: object
Os valores na Series
que não estão no dicionário são substituídos por um valor NaN
.
Códigos de exemplo: Series.map()
para passar uma função como arg
Parâmetro
Agora vamos passar uma função como parâmetro.
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)
Resultado:
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
Aqui, passámos string.format()
função como parâmetro. Note-se que a função também foi aplicada aos valores NaN
. Se não quisermos aplicar esta função aos valores NaN, então passaremos o valor ignore
ao parâmetro 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)
Resultado:
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
O código do exemplo acima ignorou os valores NaN
.
Códigos de exemplo: Series.map()
aplicar num 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)
Resultado:
AttributeError: 'DataFrame' object has no attribute 'map'
A função gerou o AttributeError
.