Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencari Nilai Paling Biasa dalam Bingkai Data Pandas Selepas Pengumpulan?

Bagaimana untuk Mencari Nilai Paling Biasa dalam Bingkai Data Pandas Selepas Pengumpulan?

Patricia Arquette
Lepaskan: 2024-12-02 01:58:09
asal
183 orang telah melayarinya

How to Find the Most Common Value in a Pandas DataFrame After Grouping?

GroupBy panda DataFrame dan Pilih Nilai Paling Biasa

Untuk membersihkan data dengan berbilang lajur rentetan, kumpulkan mengikut dua lajur pertama dan pilih nilai paling lazim untuk lajur ketiga dalam setiap gabungan.

Masalah

Kod yang disediakan gagal dengan KeyError, dan pengumpulan hanya mengikut lajur City menghasilkan AssertionError. Penyelesaian yang teguh diperlukan.

Penyelesaian

Siarkan panda v0.16, pd.Series.mode menawarkan kaedah yang serba boleh dan cekap untuk tugasan ini:

source.groupby(['Country', 'City'])['Short name'].agg(pd.Series.mode)
Salin selepas log masuk

Mengatasi Berbilang Mod

Dalam kes berbilang mod dalam kumpulan, Series.mode mengembalikan senarai nilai. Untuk hasil tunggal, gunakan fungsi lambda:

source.groupby(['Country', 'City'])['Short name'].agg(lambda x: pd.Series.mode(x)[0])
Salin selepas log masuk

Alternatif untuk Dipertimbangkan

scipy.stats.mode juga boleh digunakan, tetapi ia menimbulkan ralat apabila menghadapi berbilang mod.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Paling Biasa dalam Bingkai Data Pandas Selepas Pengumpulan?. 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