Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Isih Data Dalam Kumpulan dalam Pandas DataFrames?

Bagaimana untuk Isih Data Dalam Kumpulan dalam Pandas DataFrames?

Susan Sarandon
Susan Sarandonasal
2024-10-20 17:27:02248semak imbas

How to Sort Data Within Groups in Pandas DataFrames?

Isih Dalam Kumpulan dalam panda

Apabila bekerja dengan bingkai data panda, selalunya perlu untuk mengumpulkan data mengikut lajur tertentu dan kemudian melakukan operasi tambahan dalam kumpulan tersebut. Satu keperluan biasa ialah mengisih data terkumpul berdasarkan kriteria tertentu.

Untuk mencapai ini, fungsi kumpulan mengikut boleh dirantai dengan fungsi sort_values. Sebagai contoh, pertimbangkan df bingkai data yang mempunyai kiraan lajur, tugas dan sumber.

In [167]: df

Out[167]:
   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

Jika anda ingin mengumpulkan data mengikut tugas dan sumber dan kemudian mengisih hasil agregat mengikut kiraan dalam tertib menurun, anda boleh melakukan perkara berikut:

In [168]: df.groupby(['job','source']).agg({'count':sum})

Ini akan mencipta kerangka data baharu yang mengandungi nilai kiraan agregat untuk setiap kumpulan. Walau bagaimanapun, bingkai data yang terhasil tidak akan diisih mengikut kiraan. Untuk mengisih bingkai data, anda boleh menggunakan fungsi sort_values:

In [34]: df.sort_values(['job','count'],ascending=False)

Ini akan mengisih bingkai data mengikut kerja dahulu dan kemudian mengikut kiraan dalam tertib menurun. Bingkai data yang terhasil akan kelihatan seperti ini:

Out[35]: 
   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

Untuk mengambil tiga baris teratas setiap kumpulan, anda boleh menggunakan fungsi kepala:

In [34]: df.sort_values(['job','count'],ascending=False).groupby('job').head(3)

Ini akan menghasilkan bingkai data baharu yang mengandungi tiga baris teratas setiap kumpulan, diisih mengikut kiraan dalam tertib menurun.

Out[35]: 
   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

Atas ialah kandungan terperinci Bagaimana untuk Isih Data Dalam Kumpulan dalam Pandas DataFrames?. 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