Panda: come dividere una colonna di elenchi in più colonne
È possibile utilizzare la seguente sintassi di base per dividere una colonna di elenchi in più colonne in un DataFrame panda:
#split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])
#join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 )
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: dividere una colonna di elenchi in più colonne in Pandas
Supponiamo di avere i seguenti panda DataFrame in cui la colonna chiamata punti contiene elenchi di valori:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Heat', 'Kings', 'Suns'], ' points ': [[99, 105], [94, 113], [99, 97], [87, 95]]}) #view DataFrame print (df) team points 0 Mavs [99, 105] 1 Heat [94, 113] 2 Kings [99, 97] 3 Suns [87, 95]
Possiamo utilizzare la seguente sintassi per creare un nuovo DataFrame in cui la colonna dei punti è divisa in due nuove colonne chiamate game1 e game2 :
#split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])
#view DataFrame
print (split)
game1 game2
0 99 105
1 94 113
2 99 97
3 87 95
Se lo desideriamo, possiamo quindi unire questo DataFrame diviso con il DataFrame originale utilizzando la funzione concat() :
#join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 )
#view updated DataFrame
print (df)
team points game1 game2
0 Mavs [99, 105] 99 105
1 Heat [94, 113] 94 113
2 Kings [99, 97] 99 97
3 Suns [87, 95] 87 95
Infine, possiamo rimuovere la colonna dei punti originali dal DataFrame se vogliamo:
#drop original points column
df = df. drop (' points ', axis= 1 )
#view updated DataFrame
print (df)
team game1 game2
0 Mavs 99 105
1 Heat 94 113
2 Kings 99 97
3 Suns 87 95
Il risultato finale è un DataFrame in cui la colonna dei punti originale degli elenchi è ora divisa in due nuove colonne chiamate game1 e game2 .
Nota : se la colonna di elenchi contiene un numero dispari di valori in ciascun elenco, i panda riempiranno semplicemente i valori mancanti con valori NaN quando dividono gli elenchi in colonne.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:
Come stampare Pandas DataFrame senza indice
Come visualizzare tutte le righe in un Pandas DataFrame
Come verificare il tipo di tutte le colonne in Pandas DataFrame