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
Patricia Arquetteasal
2024-12-02 01:58:09120semak imbas

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)

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])

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!

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