Panda: come rimodellare il dataframe da lungo a largo
È possibile utilizzare la seguente sintassi di base per convertire un DataFrame panda dal formato lungo a quello ampio:
df = pd. pivot (df, index=' col1 ', columns=' col2 ', values=' col3 ')
In questo scenario, col1 diventerà l’indice, col2 diventeranno le colonne e col3 verranno utilizzati come valori all’interno del DataFrame.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: rimodella il DataFrame Pandas da lungo a largo
Supponiamo di avere i seguenti panda DataFrame in un formato lungo:
import pandas as pd #create DataFrame in long format df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' player ': [1, 2, 3, 4, 1, 2, 3, 4], ' points ': [11, 8, 10, 6, 12, 5, 9, 4]}) #view DataFrame df team player points 0 to 1 11 1 to 2 8 2 to 3 10 3 to 4 6 4 B 1 12 5 B 2 5 6 B 3 9 7 B 4 4
Possiamo utilizzare la seguente sintassi per rimodellare questo DataFrame dal formato lungo al formato ampio:
#reshape DataFrame from long format to wide format
df = pd. pivot (df, index=' team ', columns=' player ', values=' points ')
#view updated DataFrame
df
player 1 2 3 4
team
A 11 8 10 6
B 12 5 9 4
Il DataFrame è ora in un formato ampio.
Abbiamo utilizzato “squadra” come colonna dell’indice, “giocatore” come colonne e “punti” come valori all’interno del DataFrame.
Nota che potremmo invece usare “giocatore” come colonna dell’indice e “squadra” come colonne, se lo desideriamo:
#reshape DataFrame from long format to wide format
df = pd. pivot (df, index=' player ', columns=' team ', values=' points ')
#view updated DataFrame
df
team A B
player
1 11 12
2 8 5
3 10 9
4 6 4
Anche questo DataFrame è in formato ampio.
Nota : puoi trovare la documentazione completa della funzione pandas pivot() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in Python:
Panda: come rimodellare il DataFrame da largo a lungo
Come aggiungere righe a un DataFrame Pandas
Come aggiungere colonne a un DataFrame Pandas
Come contare le occorrenze di valori specifici in Pandas DataFrame