Cara melakukan penjumlahan groupby di pandas (dengan contoh)


Anda dapat menggunakan sintaks dasar berikut untuk menemukan jumlah nilai berdasarkan grup di panda:

 df. groupby ([' group1 ',' group2 '])[' sum_col ']. sum (). reset_index ()

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya dengan pandas DataFrame berikut:

 import pandas as pd

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

#view DataFrame
df

	team position points rebounds
0 A G 25 11
1 A G 17 8
2 A F 14 10
3 A C 9 6
4 B G 12 6
5 B F 9 5
6 B F 6 9
7 B C 4 12

Contoh 1: kelompokkan berdasarkan kolom, tambahkan kolom

Kode berikut menunjukkan cara mengelompokkan berdasarkan kolom dan menjumlahkan nilai dalam kolom:

 #group by team and sum the points
df. groupby ([' team '])[' points ']. sum (). reset_index ()

	team points
0 to 65
1 B 31

Dari hasilnya kita dapat melihat bahwa:

  • Pemain Tim A mencetak total 65 poin.
  • Pemain tim B mencetak total 31 poin.

Contoh 2: kelompokkan berdasarkan beberapa kolom, tambahkan beberapa kolom

Kode berikut menunjukkan cara mengelompokkan beberapa kolom dan menjumlahkan beberapa kolom:

 #group by team and position, sum points and rebounds
df. groupby ([' team ', ' position '])[' points ', ' rebounds ']. sum (). reset_index ()

        team position points rebounds
0 A C 9 6
1 A F 14 10
2 A G 42 19
3 B C 4 12
4 B F 15 14
5 B G 12 6

Dari hasilnya kita dapat melihat bahwa:

  • Pemain tim A di posisi “C” mencetak total 9 poin dan 6 rebound.
  • Pemain tim A di posisi “F” mencetak total 14 poin dan 10 rebound.
  • Pemain tim A di posisi “G” mencetak total 42 poin dan 19 rebound.

Dan seterusnya.

Perhatikan bahwa fungsi reset_index() mencegah pengelompokan kolom menjadi bagian dari indeks.

Misalnya seperti ini hasilnya jika kita tidak menggunakannya:

 #group by team and position, sum points and rebounds
df. groupby ([' team ', ' position '])[' points ', ' rebounds ']. sum ()

                 rebound points
team position		
A C 9 6
F 14 10
G 42 19
B C 4 12
F 15 14
G 12 6

Tergantung pada bagaimana Anda ingin hasilnya muncul, Anda mungkin memilih untuk menggunakan fungsi reset_index() atau tidak.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi pengelompokan umum lainnya di panda:

Cara menghitung penampakan kelompok pada panda
Bagaimana menemukan nilai maksimal per grup di Pandas
Cara menghitung kuantil berdasarkan kelompok di Pandas

Tambahkan komentar

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