Función Pandas DataFrame DataFrame.transform()

Minahil Noor 30 enero 2023
  1. La sintaxis de pandas.DataFrame.transform()
  2. Códigos de ejemplo: DataFrame.transform()
  3. Códigos de ejemplo: DataFrame.transform() para usar la cadena sqrt como función
  4. Códigos de ejemplo: DataFrame.transform() para pasar la lista de funciones
  5. DataFrame.apply() vs DataFrame.transform() Función
Función Pandas DataFrame DataFrame.transform()

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.

Artículo relacionado - Pandas DataFrame