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