Funzione Pandas DataFrame DataFrame.transform()
-
Sintassi di
pandas.DataFrame.transform() -
Codici di esempio:
DataFrame.transform() -
Codici di esempio:
DataFrame.transform()per utilizzare la stringasqrtcome 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.