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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *