Función Pandas DataFrame DataFrame.transform()
-
La sintaxis de
pandas.DataFrame.transform()
-
Códigos de ejemplo:
DataFrame.transform()
-
Códigos de ejemplo:
DataFrame.transform()
para usar la cadenasqrt
como función -
Códigos de ejemplo:
DataFrame.transform()
para pasar la lista de funciones -
DataFrame.apply()
vsDataFrame.transform()
Función
El Pandas Python DataFrame.transform()
aplica una función en un DataFrame
y transforma el DataFrame
. La función a aplicar se pasa como un parámetro a la función transform()
. El DataFrame
transformado debe tener la misma longitud del eje que el DataFrame
original.
La sintaxis de pandas.DataFrame.transform()
DataFrame.transform(func, axis, *args, **kwargs)
Parámetros
func |
Es la función que debe aplicarse al DataFrame . Trae un cambio en los valores del DataFrame . Puede ser una función, una cadena de nombres de funciones, una lista de funciones o nombres de funciones, o un diccionario de etiquetas de ejes. |
axis |
Es un entero o una cadena. Indica el eje del objetivo, ya sea filas o columnas. Puede ser 0 o index para las filas y 1 o columns para las columnas. |
*args |
Estos son los argumentos posicionales para pasar a la función. |
**kwargs |
Estos son los argumentos de palabras clave adicionales para pasar a la función. |
Retorna
Devuelve un DataFrame
transformado que tiene la misma longitud que el DataFrame
original. Si el DataFrame
devuelto tiene una longitud desigual, entonces la función eleva un ValueError
.
Códigos de ejemplo: DataFrame.transform()
Probemos primero esta función añadiendo un número a cada valor del DataFrame
.
import pandas as pd
dataframe = pd.DataFrame({
'A':
{0: 6,
1: 20,
2: 80,
3: 78,
4: 95},
'B':
{0: 60,
1: 50,
2: 7,
3: 67,
4: 54}
})
print(dataframe)
El ejemplo DataFrame
es,
A B
0 6 60
1 20 50
2 80 7
3 78 67
4 95 54
5 98 34
Esta función sólo tiene un parámetro obligatorio, es decir, func
. Ahora usaremos esta función para añadir 20 a cada valor del DataFrame
.
import pandas as pd
dataframe = pd.DataFrame(
{"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func=lambda x: x + 20)
print(dataframe1)
Producción:
A B
0 26 80
1 40 70
2 100 27
3 98 87
4 115 74
5 118 54
La palabra clave lambda
se usa para declarar una función anónima de adición aquí.
Códigos de ejemplo: DataFrame.transform()
para usar la cadena sqrt
como función
import pandas as pd
dataframe = pd.DataFrame(
{"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func="sqrt")
print(dataframe1)
Producción:
A B
0 2.449490 7.745967
1 4.472136 7.071068
2 8.944272 2.645751
3 8.831761 8.185353
4 9.746794 7.348469
5 9.899495 5.830952
Aquí, en lugar de pasar una función lambda
, hemos pasado el nombre de la función como una cadena.
Códigos de ejemplo: DataFrame.transform()
para pasar la lista de funciones
import pandas as pd
dataframe = pd.DataFrame(
{"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func=["sqrt", "exp"])
print(dataframe1)
Producción:
A B
sqrt exp sqrt exp
0 2.449490 4.034288e+02 7.745967 1.142007e+26
1 4.472136 4.851652e+08 7.071068 5.184706e+21
2 8.944272 5.540622e+34 2.645751 1.096633e+03
3 8.831761 7.498417e+33 8.185353 1.252363e+29
4 9.746794 1.811239e+41 7.348469 2.830753e+23
Hemos pasado una lista de dos nombres de funciones, es decir, ['sqrt', 'exp']
como la func
. El DataFrame
devuelto contiene dos columnas extra debido a una función extra.
DataFrame.apply()
vs DataFrame.transform()
Función
También podemos lograr los resultados anteriores utilizando DataFrame.apply()
función. Pero si comparamos estas dos funciones, diremos que la función DataFrame.transform()
es más eficiente para manejar las complejas manipulaciones.