Pandas DataFrame DataFrame.transform() Função
-
Sintaxe de
pandas.DataFrame.transform() -
Códigos de exemplo:
DataFrame.transform() -
Códigos de exemplo:
DataFrame.transform()para utilizarsqrtString como função -
Códigos de exemplo:
DataFrame.transform()para passar a lista de funções -
DataFrame.apply()vsDataFrame.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.