Dapatkan Baris dengan Nilai Maksimum dalam Kumpulan Menggunakan Groupby
Apabila melakukan analisis data, selalunya menjadi perlu untuk mengenal pasti baris yang mempunyai nilai tertinggi untuk lajur tertentu dalam setiap kumpulan yang ditakrifkan oleh lajur lain. Operasi ini boleh dilaksanakan dengan mudah menggunakan kaedah groupby() dan transform() panda, perpustakaan Python yang digunakan secara meluas untuk manipulasi data.
Pernyataan Masalah
Diberikan panda DataFrame dengan lajur seperti 'Sp', 'Mt', 'Value' dan 'count', kami berhasrat untuk mengekstrak baris yang mempunyai nilai 'kiraan' maksimum dalam setiap kumpulan yang ditakrifkan oleh lajur 'Sp' dan 'Mt'.
Penyelesaian
Untuk mendapatkan semula baris yang dikehendaki, kita boleh gunakan langkah berikut:
Kira Kiraan Maksimum untuk Setiap Kumpulan:
Kenal pasti Baris dengan Maksimum Kiraan:
Contoh 1
Pertimbangkan DataFrame berikut:
Sp | Mt | Value | count |
---|---|---|---|
MM1 | S1 | a | 3 |
MM1 | S1 | n | 2 |
MM1 | S3 | cb | 5 |
MM2 | S3 | mk | 8 |
MM2 | S4 | bg | 10 |
MM2 | S4 | dgd | 1 |
MM4 | S2 | rd | 2 |
MM4 | S2 | cb | 2 |
MM4 | S2 | uyi | 7 |
Menggunakan keputusan yang dinyatakan di atas dalam output berikut:
Sp | Mt | Value | count |
---|---|---|---|
MM1 | S1 | a | 3 |
MM1 | S3 | cb | 5 |
MM2 | S3 | mk | 8 |
MM2 | S4 | bg | 10 |
MM4 | S2 | uyi | 7 |
Contoh 2
Dengan DataFrame yang berbeza:
Sp | Mt | Value | count |
---|---|---|---|
MM2 | S4 | bg | 10 |
MM2 | S4 | dgd | 1 |
MM4 | S2 | rd | 2 |
MM4 | S2 | cb | 8 |
MM4 | S2 | uyi | 8 |
Outputnya menjadi:
Sp | Mt | Value | count |
---|---|---|---|
MM2 | S4 | bg | 10 |
MM4 | S2 | cb | 8 |
MM4 | S2 | uyi | 8 |
Pendekatan Alternatif
Pendekatan alternatif melibatkan penambahan lajur pada DataFrame yang mewakili kiraan maksimum bagi setiap kumpulan. Ini boleh dicapai menggunakan langkah berikut:
Atas ialah kandungan terperinci Bagaimana untuk Mencari Baris dengan Nilai Maksimum dalam Kumpulan dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!