Cómo aplicar una función a una columna en Pandas DataFrame
-
Los métodos
apply()ytransform()de Pandas -
Use
apply()para aplicar una función a la columna Pandas DataFrame -
Use
transform()para aplicar una función a la columna de Pandas DataFrame
En Pandas, las columnas y Dataframe pueden ser transformados y manipulados usando métodos como apply() y transform(). Las transformaciones deseadas se pasan como argumentos a los métodos como funciones. Cada método tiene sus sutiles diferencias y utilidad. Este artículo introducirá cómo aplicar una función a una columna o a un dataframe completo.
Los métodos apply() y transform() de Pandas
Ambos métodos apply() y transform() operan en columnas individuales y en todo el DataFrame. El método apply() aplica la función a lo largo de un eje especificado. Pasa las columnas como un dataframe a la función personalizada, mientras que el método transform() pasa las columnas individuales como pandas Series a la función personalizada.
La salida del método apply() se recibe en forma de un dataframe o Series dependiendo de la entrada, mientras que como una secuencia para el método transform(). Tanto la sintaxis de los métodos apply() como la de transform() se parecen a la de:
Dataframe.apply(customFunction, axis=0)
Dataframe.transform(customFunction, axis=0)
Los argumentos corresponden a
customFunction: la función que se aplica al DataFrame o a la serie.axis: 0 se refiere a'rows', y 1 se refiere a'columns'; la función debe ser aplicada tanto en filas como en columnas.
Use apply() para aplicar una función a la columna Pandas DataFrame
Ahora que hemos dominado lo básico, pongamos las manos en los códigos y entendamos cómo usar el método apply() para aplicar una función a una columna de dataframe.
Usaremos el ejemplo de dataframe como se muestra a continuación.
import pandas as pd
import numpy as np
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)

A continuación se muestra el código de ejemplo para aplicar una función a todo el DataFrame.
import pandas as pd
import numpy as np
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)
def add_2(x):
return x + 2
df = df.apply(add_2)
print(df)
Resultado:
A B C
0 1 2 3
1 4 5 6
2 7 8 9
A B C
0 3 4 5
1 6 7 8
2 9 10 11
Como se ha visto anteriormente, la función puede aplicarse a todo el DataFrame.
Aplicar una función a una sola columna
Veamos qué sucede cuando la función se aplica a lo largo de una sola columna.
import pandas as pd
import numpy as np
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)
def add_2(x):
return x + 2
df["A"] = df["A"].apply(add_2)
print(df)
# or #
df["A"].transform(add_2)
print(df)
Resultado:
A B C
0 1 2 3
1 4 5 6
2 7 8 9
A B C
0 3 2 3
1 6 5 6
2 9 8 9
Use transform() para aplicar una función a la columna de Pandas DataFrame
Veamos cómo usar el método transform() para aplicar una función a una columna de dataframe. Usaremos el mismo ejemplo de dataframe que arriba.
El código de ejemplo para aplicar una función a todo el DataFrame se muestra a continuación.
import pandas as pd
import numpy as np
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)
def add_2(x):
return x + 2
df = df.transform(add_2)
print(df)
Resultado:
A B C
0 1 2 3
1 4 5 6
2 7 8 9
A B C
0 3 4 5
1 6 7 8
2 9 10 11
Como se ha visto arriba, la función puede ser aplicada a todo el dataframe.
Aplicar una función a una sola columna
Veamos qué sucede cuando la función se aplica a lo largo de una sola columna.
import pandas as pd
import numpy as np
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)
def add_2(x):
return x + 2
df["A"] = df["A"].transform(add_2)
print(df)
Resultado:
A B C
0 1 2 3
1 4 5 6
2 7 8 9
A B C
0 3 2 3
1 6 5 6
2 9 8 9
Artículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma