Pandas DataFrame DataFrame.transform() Função
-
Sintaxe de
pandas.DataFrame.transform()
-
Códigos de exemplo:
DataFrame.transform()
-
Códigos de exemplo:
DataFrame.transform()
para utilizarsqrt
String 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.