Pandas Groupby dan Sorting dalam Kumpulan
Menghimpunkan DataFrame mengikut berbilang lajur ialah tugas biasa dalam manipulasi data. Ia membolehkan kami mengagregat data mengikut lajur ini dan melaksanakan operasi selanjutnya pada hasil agregat. Walau bagaimanapun, selalunya perlu mengisih hasil agregat dalam setiap kumpulan untuk mendapatkan baris atas atau bawah.
Pertimbangkan df DataFrame yang disediakan dalam soalan:
count job source 0 2 sales A 1 4 sales B 2 6 sales C 3 3 sales D 4 7 sales E 5 5 market A 6 3 market B 7 2 market C 8 4 market D 9 1 market E
Matlamatnya adalah untuk kumpulan df mengikut lajur kerja dan sumber dan kemudian susun lajur 'kira' dalam tertib menurun dalam setiap kumpulan. Untuk mencapai ini, kita boleh menggunakan fungsi groupby() dan sort_values() seperti berikut:
<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False)</code>
Ini akan mengisih lajur 'kira' dalam tertib menurun dalam setiap kumpulan, memberikan output berikut:
job source sales E 7 C 6 B 4 D 3 A 2 market A 5 D 4 B 3 C 2 E 1
Walau bagaimanapun, jika kita ingin mendapatkan hanya tiga baris teratas dalam setiap kumpulan, kita boleh menggunakan fungsi head():
<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False).groupby('job').head(3)</code>
Ini akan memberikan kita hasil berikut:
count job source 4 7 sales E 2 6 sales C 1 4 sales B 5 5 market A 8 4 market D 6 3 market B
Dengan menggabungkan fungsi groupby(), sort_values(), dan head(), kita boleh mengumpulkan, mengisih dan memilih baris atas atau bawah dalam setiap kumpulan dalam panda dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Menghimpun dan Mengisih Data dalam Lajur Tertentu dalam DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!