Pandy: jak usunąć multiindex z tabeli przestawnej


Aby usunąć multiIndex z tabeli przestawnej pand, możesz użyć argumentu wartości z funkcją reset_index() :

 p.d. pivot_table (df, index=' col1 ', columns=' col2 ', values=' col3 '). reset_index ()

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

Przykład: usuń MultiIndex z tabeli przestawnej Pandy

Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
                   ' points ': [4, 4, 6, 8, 9, 5, 5, 12]})

#view DataFrame
print (df)

  team position points
0 AG 4
1 GA 4
2 AF 6
3AF 8
4 BG 9
5 BF 5
6 BF 5
7 BF 12

Załóżmy teraz, że tworzymy następującą tabelę przestawną, aby podsumować średnią wartość punktów według zespołu i pozycji :

 #create pivot table to summarize mean points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ')

	        points
FG position
team		
At 7.000000 4.0
B 7.333333 9.0

Wynikowa tabela przestawna podsumowuje średnią wartość punktów według zespołu i pozycji , ale zawiera multiIndex.

Aby usunąć multiIndex możemy użyć argumentu wartości w funkcji przestawnej() i dodać na końcu reset_index() :

 #create pivot table to summarize mean points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ', values=' points '). reset_index ()

position team F G
0 to 7.000000 4.0
1 B 7.333333 9.0

Wynikowa tabela przestawna podsumowuje średnią wartość punktów według zespołu i pozycji i nie zawiera już multiIndexu.

Należy pamiętać, że funkcja przestawna() domyślnie oblicza wartość średnią.

Aby obliczyć inną metrykę, na przykład sumę, użyj argumentu aggfunc w następujący sposób:

 #create pivot table to summarize sum of points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ', values=' points ',
               aggfunc=' sum '). reset_index ()

position team FG
0 to 14 8
1 B 22 9

Powstała tabela przestawna podsumowuje sumę wartości punktowych według zespołu i pozycji , a także nie posiada multiIndexu.

Uwaga : pełną dokumentację funkcji obrotowej pandy() można znaleźć tutaj .

Dodatkowe zasoby

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

Pandy: Jak dodać filtr do tabeli przestawnej
Pandy: Jak sortować tabelę przestawną według wartości w kolumnie
Pandy: Jak dodać sumy częściowe do tabeli przestawnej

Dodaj komentarz

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