Pandy: jak podzielić kolumnę list na wiele kolumn
Możesz użyć następującej podstawowej składni, aby podzielić kolumnę list na wiele kolumn w ramce DataFrame pandy:
#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 )
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: podziel kolumnę list na wiele kolumn w Pandach
Załóżmy, że mamy następującą pandę DataFrame, w której kolumna o nazwie punkty zawiera listy wartości:
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]
Możemy użyć następującej składni, aby utworzyć nową ramkę danych, w której kolumna punktów jest podzielona na dwie nowe kolumny zwane gra1 i gra2 :
#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
Jeśli chcemy, możemy połączyć podzieloną ramkę DataFrame z oryginalną ramką DataFrame za pomocą funkcji 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
Na koniec możemy usunąć oryginalną kolumnę punktów z ramki DataFrame, jeśli chcemy:
#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
Efektem końcowym jest DataFrame, w której oryginalna kolumna punktów na listach jest teraz podzielona na dwie nowe kolumny zwane game1 i game2 .
Uwaga : jeśli Twoja kolumna list zawiera nieparzystą liczbę wartości na każdej liście, pandy po prostu uzupełnią brakujące wartości wartościami NaN podczas dzielenia list na kolumny.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:
Jak wydrukować Pandas DataFrame bez pliku indeksowego
Jak wyświetlić wszystkie wiersze w ramce danych Pandas
Jak sprawdzić typ wszystkich kolumn w Pandas DataFrame