Jak korzystać z funkcji pandas burst() (z przykładami)


Możesz użyć funkcji pandas Burst() , aby przekształcić każdy element listy wbudowanej w ramkę DataFrame.

Ta funkcja wykorzystuje następującą podstawową składnię:

 df. explode (' variable_to_explode ')

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: użyj funkcji wybuchowej() z Pandas DataFrame

Załóżmy, że mamy następującą ramkę DataFrame pand:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']] ,
                   ' position ':['Guard', 'Forward', 'Center'],
                   ' points ': [7, 14, 19]})

#view DataFrame
df

	team position points
0 [A, B, C] Guard 7
1 [D, E, F] Forward 14
2 [G, H, I] Center 19

Pamiętaj, że kolumna zespół zawiera listę nazw zespołów.

Możemy użyć funkcji eksploduj() , aby rozbić każdy element każdej listy na jedną linię:

 #explode team column
df. explode (' team ')

        team position points
0 A Guard 7
0 B Guard 7
0 C Guard 7
1D Forward 14
1 E Forward 14
1 F Forward 14
2G Center 19
2H Center 19
2 I Center 19

Pamiętaj, że kolumna zespołu nie zawiera już list. „Rozbiliśmy” każdy element na każdej liście w jednym wierszu.

Należy również pamiętać, że niektóre wiersze mają teraz tę samą wartość indeksu.

Możemy użyć funkcji reset_index() , aby zresetować indeks podczas rozdzielania kolumny zespołu:

 #explode team column and reset index of resulting dataFrame
df. explode (' team '). reset_index (drop= True )

	team position points
0 A Guard 7
1 B Guard 7
2 C Guard 7
3D Forward 14
4 E Forward 14
5 F Forward 14
6G Center 19
7 A.M. Center 19
8 I Center 19

Należy pamiętać, że każdy wiersz ma teraz unikalną wartość indeksu.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak podzielić kolumnę ciągów w Pandach na wiele kolumn
Jak podzielić ramkę danych Pandas na wiele ramek danych
Jak podzielić ramkę danych Pandas według wartości kolumny

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *