Pandas map
![Pandas map](/img/Python-Pandas/ag-feature-image---Pandas-map-python.webp)
Este tutorial explica como podemos substituir valores de uma Série de Pandas por outro valor utilizando o método Series.map()
.
import pandas as pd
my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])
print(my_series, "\n")
Resultado:
1 85
2 87
3 90
4 89
dtype: int64
Vamos utilizar a Série my_series
apresentada no exemplo acima para explicar o funcionamento do método map()
em Pandas.
pandas.Series.map()
Sintaxe
Series.map(arg, na_action=None)
Retorna um objecto Series
substituindo os valores do objecto que chama Series
com base no parâmetro arg
. O arg
pode ser um função, dicionário ou Series
que determina quais são os novos valores do objecto Series
.
O parâmetro na_action
pode tomar como valor None
ou 'ignore'
. O valor 'ignore'
indica ignorar os valores NaN
na Series
e não lhes fazer nada.
Exemplo: Utilize map()
Método para uma Série 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")
Resultado:
Initial Series:
1 85
2 87
3 90
4 89
dtype: int64
Altered Series:
1 80
2 80
3 90
4 80
dtype: int64
Substitui os elementos de my_series
dependendo dos valores especificados no dicionário passado como argumento ao método map()
.
Também podemos utilizar funções para alterar os valores da Série Pandas utilizando o método 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")
Resultado:
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
Pega em cada elemento da my_series
e anexa .00
no final de cada elemento da my_series
.
Exemplo: Utilize o map()
Método para alterar a coluna particular de uma 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)
Resultado:
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
Aplicará a função lambda
apenas à Column 1
da DataFrame utilizando o método map()
. Como a coluna única é um objecto Series
, podemos utilizar o método map()
com uma coluna de DataFrame. Em seguida, atribuímos o objecto Series
devolvido do método map()
de volta à Column 1
do método df_1
DataFrame. Desta forma, só podemos alterar os valores da coluna específica de um DataFrame.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn