Pandas: cara menggunakan groupby & sortir dalam grup


Anda dapat menggunakan sintaks berikut untuk mengelompokkan baris dalam pandas DataFrame dan kemudian mengurutkan nilai dalam grup:

 df. sort_values ([' var1 ',' var2 '],ascending= False ). groupby (' var1 '). head ()

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Menggunakan GroupBy dan Mengurutkan Grup di Pandas

Katakanlah kita memiliki panda DataFrame berikut yang menunjukkan penjualan yang dilakukan di dua toko berbeda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   ' sales ': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print (df)

  blind sales
0 B 12
1 B 25
2 to 8
3 to 14
4 B 10
5 B 20
6 to 30
7 to 30

Kita dapat menggunakan sintaks berikut untuk mengelompokkan baris berdasarkan kolom toko dan mengurutkan dalam urutan menurun berdasarkan kolom penjualan :

 #group by store and sort by sales values in descending order
df. sort_values ([' store ', ' sales '],ascending= False ). groupby (' store '). head ()

	blind sales
1 B 25
5 B 20
0 B 12
4 B 10
6 to 30
7 to 30
3 to 14
2 to 8

Perhatikan bahwa kita juga dapat menghapus argumen ascending=False untuk mengurutkan nilai penjualan dalam urutan menaik:

 #group by store and sort by sales values in ascending order
df. sort_values ([' store ',' sales ']). groupby (' store '). head ()

	blind sales
2 to 8
3 to 14
6 to 30
7 to 30
4 B 10
0 B 12
5 B 20
1 B 25

Perhatikan bahwa fungsi head() hanya menampilkan 5 nilai pertama per grup.

Untuk menampilkan nilai n teratas per grup, cukup gunakan head(n) saja.

Catatan : Anda dapat menemukan dokumentasi lengkap operasi GroupBy di pandas di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Pandas: cara menghitung jumlah kumulatif per kelompok
Pandas: cara menghitung nilai unik berdasarkan kelompok
Pandas: cara menghitung korelasi berdasarkan kelompok

Tambahkan komentar

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