En las transformaciones de datos con pandas, existen varias funciones para aplicar operaciones personalizadas en nuestros datos. Es importante destacar que, en versiones actuales de pandas (a partir de la 2.1.0), applymap()
está desaconsejado y se recomienda usar map()
, que ahora funciona tanto para Series como para DataFrames.
apply()
: Aplicar funciones a columnas o filas
Se utiliza para aplicar una función personalizada a lo largo de un eje (filas o columnas) de un DataFrame. Es ideal para transformar datos en una sola columna o fila.
def cuadrado(x):
return x ** 2
# Aplica la función 'cuadrado' a cada elemento de la columna 'Valor'
df['Valor al cuadrado'] = df['Valor'].apply(cuadrado)
print(df)
map()
: Aplicar funciones a Series y DataFrames
Originalmente diseñada para transformar valores en Series, map()
en las versiones actuales de pandas también se puede aplicar a DataFrames, reemplazando así la funcionalidad de applymap()
. Esto permite transformar cada elemento de un DataFrame de forma más consistente.
Ejemplo con Series:
# Multiplica cada elemento de la columna 'Valor' por 2
df['Valor_modificado'] = df['Valor'].map(lambda x: x * 2)
print(df)
Ejemplo con DataFrames:
# Multiplica cada elemento de las columnas 'Valor' y 'Valor al cuadrado' por 3
df[['Valor', 'Valor al cuadrado']] = df[['Valor', 'Valor al cuadrado']].map(lambda x: x * 3)
print(df)
Nota:
apply()
se usa para aplicar funciones a lo largo de filas o columnas.map()
se recomienda en la actualidad tanto para Series como para DataFrames, ya queapplymap()
ha quedado desaconsejado y se eliminará en futuras versiones de pandas.