Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Cekap Mencari Nilai Paling Biasa dalam Kumpulan Pandas DataFrame?

Bagaimana untuk Cekap Mencari Nilai Paling Biasa dalam Kumpulan Pandas DataFrame?

Linda Hamilton
Lepaskan: 2024-11-29 11:32:15
asal
252 orang telah melayarinya

How to Efficiently Find the Most Common Value in a Pandas DataFrame Group?

GroupBy panda DataFrame dan Pilih Nilai Paling Sama

Masalah


>

< Katakan anda mempunyai bingkai data dengan berbilang rentetan lajur. Setiap gabungan dua lajur pertama hendaklah hanya mempunyai satu nilai yang sah dalam lajur ketiga. Anda perlu membersihkan data secara konsisten dengan mengumpulkan bingkai data dengan dua lajur pertama dan memilih nilai paling biasa lajur ketiga untuk setiap gabungan.


Kod berikut menunjukkan percubaan untuk mencapai ini:


import panda sebagai pd

dari import scipy statistik

sumber = pd.DataFrame({
'Country': ['USA', 'USA', 'Russia', 'USA'], 
'City': ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'],
'Short name': ['NY', 'New', 'Spb', 'NY']})
Salin selepas log masuk


source.groupby(['Negara','Bandar']).agg(lambda x: stats.mode(x[' pendek name'])[0])

Walau bagaimanapun, baris terakhir kod gagal dengan KeyError. Bagaimana anda boleh membetulkannya isu?


Penyelesaian


Panda >= 0.16


<.1s>0. dan kemudian, gunakan yang berikut kod:


source.groupby(['Negara','Bandar'])['Nama pendek'].agg(pd.Siri.mod)

Kod ini menggunakan fungsi pd.Series.mode, yang diperkenalkan dalam Pandas 0.16, untuk mencari nilai paling biasa dalam setiap kumpulan.


Alternatif untuk menangani Mod Berbilang


Fungsi mod Siri. kes dengan pelbagai mod dengan berkesan:



  • Jika terdapat berbilang mod, ia mengembalikan Siri mengandungi semua mod.

  • Jika anda memerlukan baris berasingan untuk setiap mod, gunakan GroupBy.apply(pd.Series.mode).< /li>
  • Jika anda memerlukan mana-mana satu mod, gunakan GroupBy.agg(lambda x: pd.Series.mode(x)[0]).


< h4>Alternatif kepada Pertimbangkan

Walaupun anda boleh menggunakan mod statistics. daripada Python, ia tidak mengendalikan berbilang mod dengan baik dan mungkin menimbulkan StatisticsError. Oleh itu, ia tidak disyorkan.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Nilai Paling Biasa dalam Kumpulan Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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