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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *