Pandas: cara mengelompokkan berdasarkan indeks dan melakukan perhitungan
Anda dapat menggunakan metode berikut untuk mengelompokkan berdasarkan satu atau beberapa kolom indeks di panda dan melakukan penghitungan:
Metode 1: Kelompokkan berdasarkan kolom indeks
df. groupby (' index1 ')[' numeric_column ']. max ()
Metode 2: Kelompokkan berdasarkan beberapa kolom indeks
df. groupby ([' index1 ',' index2 '])[' numeric_column ']. sum ()
Metode 3: Kelompokkan berdasarkan Kolom Indeks dan Kolom Reguler
df. groupby ([' index1 ',' numeric_column1 '])[' numeric_column2 ']. nunique ()
Contoh berikut menunjukkan cara menggunakan setiap metode dengan panda DataFrame berikut yang memiliki MultiIndex:
 import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
                   ' points ': [7, 7, 7, 19, 16, 9, 10, 10, 8, 8],
                   ' rebounds ': [8, 8, 8, 10, 11, 12, 13, 13, 15, 11]})
#set 'team' column to be index column
df. set_index ([' team ', ' position '], inplace= True )
#view DataFrame
df
		 rebound points
team position		
A G 7 8
        G 7 8
        G 7 8
        F 19 10
        F 16 11
B G 9 12
        G 10 13
        F 10 13
        F 8 15
        F 8 11
Metode 1: Kelompokkan berdasarkan kolom indeks
Kode berikut menunjukkan cara mencari nilai maksimum kolom “poin”, yang dikelompokkan berdasarkan kolom indeks “posisi”:
 #find max value of 'points' grouped by 'position index column
df. groupby (' position ')[' points ']. max ()
position
F 19
G 10
Name: points, dtype: int64
Metode 2: Kelompokkan berdasarkan beberapa kolom indeks
Kode berikut menunjukkan cara mencari jumlah kolom “poin”, yang dikelompokkan berdasarkan kolom indeks “tim” dan “posisi”:
 #find max value of 'points' grouped by 'position index column
df. groupby ([' team ', ' position '])[' points ']. sum ()
team position
AF35
      G21
BF 26
      G 19
Name: points, dtype: int64
Metode 3: Kelompokkan berdasarkan Kolom Indeks dan Kolom Reguler
Kode berikut menunjukkan cara mencari jumlah nilai unik pada kolom “rebound”, yang dikelompokkan berdasarkan kolom indeks “tim” dan kolom “poin” biasa:
 #find max value of 'points' grouped by 'position index column
df. groupby ([' team ', ' points '])[' rebounds ']. nunique ()
team points
At 7 1
      16 1
      19 1
B 8 2
      9 1
      10 1
Name: rebounds, dtype: int64
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:
 Cara menghitung nilai unik di panda
 Cara meratakan MultiIndex di Pandas
 Cara mengubah satu atau lebih nilai indeks di Pandas
 Cara mereset indeks di Pandas