Memandangkan Pandas DataFrame yang mengandungi berbilang lajur, tugasnya adalah untuk mengenal pasti dan pilih baris dengan nilai minimum dalam lajur tertentu untuk setiap nilai unik dalam lajur lain. Sebagai contoh, dalam DataFrame dengan lajur A, B dan C, anda ingin mendapatkan semula baris dengan nilai B minimum untuk setiap nilai A.
Penyelesaian yang mudah dan pendekatan yang cekap untuk menyelesaikan masalah ini adalah dengan menggunakan fungsi groupby dan idxmin Pandas. Fungsi groupby mengumpulkan baris mengikut lajur yang ditentukan, manakala idxmin mengembalikan indeks baris dengan nilai minimum dalam lajur lain.
<code class="python">df.loc[df.groupby('A').B.idxmin()]</code>
Barisan kod ini mencapai hasil yang diingini. Pertama, ia menggunakan groupby('A') untuk mengumpulkan DataFrame mengikut lajur A. Kemudian, ia menggunakan fungsi B.idxmin() untuk setiap kumpulan, yang mengembalikan indeks baris dengan nilai B minimum dalam kumpulan itu. Akhir sekali, fungsi loc digunakan untuk memilih baris yang sepadan dengan nilai B minimum.
Pertimbangkan DataFrame berikut:
<code class="python">df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2], 'B': [4, 5, 2, 7, 4, 6], 'C': [3, 4, 10, 2, 4, 6]})</code>
Menggunakan kod penyelesaian menghasilkan keputusan berikut:
A B C 2 1 2 10 4 2 4 4
Output ini menunjukkan baris yang mengandungi nilai B minimum untuk setiap nilai A unik (2 untuk A=1 dan 4 untuk A=2).
Sebagai alternatif, anda boleh menggunakan reset_index(drop=True) untuk mengalih keluar lajur indeks daripada DataFrame yang terhasil:
<code class="python">df.loc[df.groupby('A').B.idxmin()].reset_index(drop=True)</code>
Ini akan memberikan anda DataFrame dengan hanya lajur yang anda perlukan .
Atas ialah kandungan terperinci Bagaimana Mencari Baris dengan Nilai Minimum dalam Lajur Menggunakan Pandas GroupBy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!