Pandas DataFrame DataFrame.transform() Função

Minahil Noor 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.transform()
  2. Códigos de exemplo: DataFrame.transform()
  3. Códigos de exemplo: DataFrame.transform() para utilizar sqrt String como função
  4. Códigos de exemplo: DataFrame.transform() para passar a lista de funções
  5. DataFrame.apply() vs DataFrame.transform() Função
Pandas DataFrame DataFrame.transform() Função

Python Pandas DataFrame.transform() aplica uma função num DataFrame e transforma o DataFrame. A função a ser aplicada é passada como parâmetro à função transform(). A DataFrame transformada deve ter o mesmo comprimento do eixo que a DataFrame original.

Sintaxe de pandas.DataFrame.transform()

DataFrame.transform(func, axis, *args, **kwargs)

Parâmetros

func É a função a ser aplicada ao DataFrame. Traz uma mudança nos valores do DataFrame. Pode ser uma função, string de nomes de funções, lista de funções ou nomes de funções, ou dicionário de etiquetas de eixos.
axis É um número inteiro ou um string. Fala sobre o eixo alvo quer em filas quer em colunas. Pode ser 0 ou index para linhas e 1 ou columns para colunas.
*args Estes são os argumentos posicionais a passar para a função.
**kwargs Estes são os argumentos adicionais de palavras-chave a passar para a função.

Devolver

Devolve um DataFrame transformado que tem o mesmo comprimento que o original DataFrame. Se o DataFrame devolvido tiver um comprimento desigual, então a função aumenta um ValueError.

Códigos de exemplo: DataFrame.transform()

Vamos primeiro tentar esta função adicionando um número a cada valor do 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)

O exemplo DataFrame é,

    A   B
0   6  60
1  20  50
2  80   7
3  78  67
4  95  54
5  98  34

Esta função tem apenas um parâmetro obrigatório, ou seja, func. Agora vamos utilizar esta função para adicionar 20 a cada valor do 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)

Resultado:

     A   B
0   26  80
1   40  70
2  100  27
3   98  87
4  115  74
5  118  54

A palavra-chave lambda é utilizada para declarar aqui uma função de adição anónima.

Códigos de exemplo: DataFrame.transform() para utilizar sqrt String como função

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)

Resultado:

          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

Aqui, em vez de passarmos uma função lambda, passámos o nome da função como uma string.

Códigos de exemplo: DataFrame.transform() para passar a lista de funções

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)

Resultado:

          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

Aprovámos uma lista de dois nomes de funções, ou seja, ['sqrt', 'exp'] como o func. O DataFrame devolvido contém duas colunas extra devido a uma função extra.

DataFrame.apply() vs DataFrame.transform() Função

Podemos também alcançar os resultados acima referidos utilizando DataFrame.apply() function. Mas se compararmos estas duas funções, diremos que a função DataFrame.transform() é mais eficiente para lidar com as manipulações complexas.

Artigo relacionado - Pandas DataFrame