Apabila bekerja dengan Pandas DataFrames, selalunya perlu untuk mengumpulkan data mengikut lajur tertentu dan menjalankan operasi pada lajur tersebut. kumpulan. Satu operasi biasa ialah memilih baris dengan nilai minimum dalam lajur tertentu.
Dalam artikel ini, kami akan meneroka pendekatan yang mudah dan cekap untuk mencapai tugas ini tanpa menggunakan MultiIndex.
Pernyataan Masalah:
Diberikan DataFrame dengan lajur A, B dan C, matlamat kami adalah untuk memilih baris dengan nilai minimum dalam lajur B untuk setiap nilai dalam lajur A.
Frame Data Asal:
A | B | C |
---|---|---|
1 | 4 | 3 |
1 | 5 | 4 |
1 | 2 | 10 |
2 | 7 | 2 |
2 | 4 | 4 |
2 | 6 | 6 |
Output yang Diingini:
A | B | C |
---|---|---|
1 | 2 | 10 |
2 | 4 | 4 |
Penyelesaian:
Kunci untuk menyelesaikan masalah ini terletak pada kaedah idxmin() Pandas. Kaedah ini mengembalikan indeks baris dengan nilai minimum dalam lajur yang ditentukan untuk setiap kumpulan.
Menggunakan groupby() dan idxmin(), kita boleh terus memilih baris yang kita mahu:
<code class="python"># Group the DataFrame by column 'A' grouped = df.groupby('A') # Get the index of the rows with the minimum value in column 'B' for each group min_idx = grouped.B.idxmin() # Use the index to select the desired rows result = df.loc[min_idx]</code>
Output:
A B C 2 1 2 10 4 2 4 4
Pendekatan ini cekap memilih baris dengan nilai minimum dalam lajur B untuk setiap kumpulan dalam A, tanpa memerlukan struktur data yang kompleks atau langkah perantaraan.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan Nilai Minimum dalam Lajur Tertentu Selepas GroupBy dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!