Python Series map
Este tutorial explica cómo podemos reemplazar valores de una Serie Pandas con otro valor usando el 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")
Producción :
1 85
2 87
3 90
4 89
dtype: int64
Utilizaremos la Serie my_series
mostrada en el ejemplo anterior para explicar el funcionamiento del método map()
en Pandas.
pandas.Series.map()
Sintaxis
Series.map(arg, na_action=None)
Devuelve un objeto Series
sustituyendo los valores del objeto Series
de la llamada en función del parámetro arg
. El arg
puede ser una función
, diccionario
u objeto Series
que determina cuáles son los nuevos valores del objeto Series
.
El parámetro na_action
puede tomar como valor None
o 'ignore'
. El valor 'ignore'
de na_action
indica que se ignoran los valores NaN
de la Series
y no se hace nada con ellos.
Ejemplo: Usar el método map()
para una serie de 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")
Producción :
Initial Series:
1 85
2 87
3 90
4 89
dtype: int64
Altered Series:
1 80
2 80
3 90
4 80
dtype: int64
Sustituye los elementos de my_series
en función de los valores especificados en el diccionario pasado como argumento al método map()
.
También podemos usar funciones para cambiar los valores de las series de Pandas usando el 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")
Producción :
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
Toma cada elemento de my_series
y añade .00
al final de cada elemento de my_series
.
Ejemplo: Usar el método map()
para alterar una columna particular de un 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
Se aplicará la función lambda
sólo a la Columna 1
del DataFrame utilizando el método map()
. Como una sola columna es un objeto Series
, podemos utilizar el método map()
con una columna del DataFrame. Entonces asignamos el objeto Series
devuelto por el método map()
a la Columna 1
del DataFrame df_1
. De esta manera, podemos cambiar los valores de la columna particular sólo de un DataFrame.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn