Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencari Nilai Paling Biasa dalam Lajur Pandas DataFrame Selepas Dikumpulkan?
Anda ditugaskan untuk membersihkan bingkai data dengan tiga lajur rentetan, memastikan bahawa lajur ketiga mengandungi nilai yang betul untuk gabungan yang ditentukan bagi dua lajur pertama. Coretan kod yang anda berikan cuba mengumpulkan bingkai data mengikut dua lajur pertama dan memilih nilai paling biasa lajur ketiga untuk setiap gabungan. Walau bagaimanapun, anda menghadapi masalah apabila cuba melaksanakan fungsi agg.
Sintaks yang anda gunakan dalam kod anda sudah lapuk . Sebaliknya, gunakan fungsi pd.Series.mode, yang tersedia dalam Pandas versi 0.16 dan ke atas. Fungsi ini mengembalikan nilai yang paling biasa dalam satu siri rentetan. Begini cara untuk menggunakannya:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode)
Sintaks ini mengumpulkan bingkai data mengikut 'Negara' dan 'Bandar,' menggunakan fungsi pd.Series.mode pada lajur 'Short name' setiap kumpulan dan memaparkan hasil.
Jika anda memerlukan output sebagai DataFrame, gunakan ini baris:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode).to_frame()
Fungsi mod pd.Series.mode juga mengendalikan situasi di mana berbilang mod wujud. Sebagai contoh, jika berbilang nilai berlaku dengan kekerapan yang sama dengan nilai yang paling biasa, ia akan dikembalikan sebagai senarai mod.
Anda boleh menggunakan fungsi statistics.mode daripada perpustakaan standard Python. Walau bagaimanapun, pendekatan ini tidak berfungsi dengan baik apabila berurusan dengan berbilang mod. Ia menimbulkan StatisticsError apabila tiada satu pun nilai yang paling biasa.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Paling Biasa dalam Lajur Pandas DataFrame Selepas Dikumpulkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!