Bagaimana untuk Isih Data Dalam Kumpulan dalam Pandas DataFrames?

Susan Sarandon
Lepaskan: 2024-10-20 17:27:02
asal
246 orang telah melayarinya

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
Salin selepas log masuk

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})
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!