Funzione Pandas DataFrame DataFrame.transform()
-
Sintassi di
pandas.DataFrame.transform()
-
Codici di esempio:
DataFrame.transform()
-
Codici di esempio:
DataFrame.transform()
per utilizzare la stringasqrt
come funzione -
Codici di esempio:
DataFrame.transform()
per passare l’lista delle funzioni -
Funzione
DataFrame.apply()
vsDataFrame.transform()
Python Pandas DataFrame.transform()
applica una funzione su un DataFrame
e trasforma il DataFrame
. La funzione da applicare viene passata come parametro alla funzione transform()
. Il DataFrame
trasformato dovrebbe avere la stessa lunghezza dell’asse del DataFrame
originale.
Sintassi di pandas.DataFrame.transform()
DataFrame.transform(func, axis, *args, **kwargs)
Parametri
func |
È la funzione da applicare al DataFrame . Apporta un cambiamento nei valori del DataFrame . Può essere una funzione, una stringa del nome della funzione, una lista di funzioni o nomi di funzioni o un dizionario delle etichette degli assi. |
axis |
È un numero intero o una stringa. Specifica l’asse di destinazione righe o colonne. Può essere 0 o index per le righe e 1 o columns per le colonne. |
*args |
Questi sono gli argomenti posizionali da passare alla funzione. |
**kwargs |
Questi sono gli argomenti della parola chiave aggiuntivi da passare alla funzione. |
Ritorno
Restituisce un DataFrame
trasformato che ha la stessa lunghezza dell’originale DataFrame
. Se il DataFrame
restituito ha una lunghezza diversa, la funzione solleva un ValueError
.
Codici di esempio: DataFrame.transform()
Proviamo prima questa funzione aggiungendo un numero a ciascun valore 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)
L’esempio DataFrame
è,
A B
0 6 60
1 20 50
2 80 7
3 78 67
4 95 54
5 98 34
Questa funzione ha un solo parametro obbligatorio, cioè func
. Ora useremo questa funzione per aggiungere 20 a ciascun valore 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)
Produzione:
A B
0 26 80
1 40 70
2 100 27
3 98 87
4 115 74
5 118 54
La parola chiave lambda
viene utilizzata per dichiarare una funzione di addizione anonima qui.
Codici di esempio: DataFrame.transform()
per utilizzare la stringa sqrt
come funzione
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)
Produzione:
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
Qui, invece di passare una funzione lambda
, abbiamo passato il nome della funzione come una stringa.
Codici di esempio: DataFrame.transform()
per passare l’lista delle funzioni
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)
Produzione:
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
Abbiamo passato una lista di due nomi di funzioni cioè ['sqrt', 'exp']
come func
. Il DataFrame
restituito contiene due colonne extra a causa di una funzione extra.
Funzione DataFrame.apply()
vs DataFrame.transform()
Possiamo anche ottenere i risultati di cui sopra utilizzando la funzione DataFrame.apply()
. Ma se confrontiamo queste due funzioni, diremo che la funzione DataFrame.transform()
è più efficiente per gestire le manipolazioni complesse.