Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghimpun dan Mengisih Data dalam Lajur Tertentu dalam DataFrame?

Bagaimana untuk Menghimpun dan Mengisih Data dalam Lajur Tertentu dalam DataFrame?

Barbara Streisand
Barbara Streisandasal
2024-10-20 17:20:02126semak imbas

How to Group and Sort Data within Specific Columns in a DataFrame?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn