Pandas: cara mengelompokkan dua kolom dan agregat


Anda dapat menggunakan sintaks dasar berikut dengan fungsi groupby() di panda untuk mengelompokkan berdasarkan dua kolom dan menggabungkan kolom lainnya:

 df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()

Contoh khusus ini mengelompokkan DataFrame berdasarkan kolom var1 dan var2 , lalu menghitung rata-rata kolom var3 .

Contoh berikut menunjukkan cara mengelompokkan pada dua kolom dan mengagregasi menggunakan pandas DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'],
                   ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team position points
0 AG 15
1 AG 22
2 AF 24
3 AF 25
4 AF 20
5 BG 35
6 BG 34
7 BG 19
8 BG 14
9 BF 12

Contoh 1: Kelompokkan dua kolom dan hitung rata-rata kolom lainnya

Kita dapat menggunakan sintaks berikut untuk menghitung nilai rata-rata kolom poin , yang dikelompokkan berdasarkan kolom tim dan posisi :

 #calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()

team position
AF23.0
      G 18.5
BF 12.0
      G 25.5
Name: points, dtype: float64

Dari hasilnya kita dapat melihat:

  • Nilai rata-rata poin pemain tim A di posisi F adalah 23 .
  • Nilai rata-rata poin pemain tim A di posisi G adalah 18,5 .

Dan seterusnya.

Contoh 2: Kelompokkan dua kolom dan hitung maksimum kolom lainnya

Kita dapat menggunakan sintaks berikut untuk menghitung nilai maksimum kolom poin , yang dikelompokkan berdasarkan kolom tim dan posisi :

 #calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()

team position
AF25
      G22
BF 12
      G 35
Name: points, dtype: int64

Dari hasilnya kita dapat melihat:

  • Nilai poin maksimal pemain tim A di posisi F adalah 25 .
  • Nilai poin maksimal pemain tim A di posisi G adalah 22 .

Dan seterusnya.

Contoh 3: Kelompokkan berdasarkan dua kolom dan hitung kemunculannya

Kita dapat menggunakan sintaks berikut untuk menghitung kemunculan setiap kombinasi kolom tim dan posisi :

 #count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()

team position
AF3
      G2
BF 1
      G4
dtype: int64

Dari hasilnya kita dapat melihat:

  • Ada 3 pemain di tim A di posisi F.
  • Ada 2 pemain di tim A di posisi G.

Dan seterusnya.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Cara menghitung nilai unik menggunakan Pandas GroupBy
Cara menerapkan fungsi ke Pandas Groupby
Cara Membuat Plot Batang dari Pandas GroupBy

Tambahkan komentar

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