Mengalih keluar Baris Pendua Sambil Mengutamakan Nilai Maksimum dalam Lajur B
Berurusan dengan baris pendua dalam DataFrame selalunya boleh menimbulkan cabaran. Dalam kes ini, objektifnya adalah untuk menghapuskan baris pendua berdasarkan nilai dalam lajur A dan mengekalkan baris dengan nilai tertinggi dalam lajur B.
Untuk mencapai ini, gabungan operasi boleh digunakan. Pertama, DataFrame boleh diisih mengikut lajur B dalam tertib menurun menggunakan fungsi sort_values. Ini menyusun baris dengan nilai tertinggi untuk lajur B di bahagian atas.
df = df.sort_values('B', ascending=False)
Seterusnya, fungsi drop_duplicates boleh digunakan untuk mengalih keluar baris pendua berdasarkan nilai dalam lajur A. Walau bagaimanapun, untuk mengekalkan keutamaan baris, parameter keep ditetapkan untuk bertahan. Ini memastikan bahawa baris dengan kejadian terkini (biasanya baris dengan nilai tertinggi dalam lajur B) dikekalkan.
df = df.drop_duplicates(subset='A', keep='last')
Sebagai alternatif, fungsi kumpulan mengikut digabungkan dengan aplikasi boleh dimanfaatkan untuk menyelesaikan tugas. Pendekatan ini mengumpulkan DataFrame mengikut lajur A dan menggunakan fungsi lambda pada setiap kumpulan. Dalam fungsi lambda, kaedah idxmax digunakan untuk mengenal pasti indeks baris dengan nilai maksimum untuk lajur B. DataFrame yang terhasil mengandungi hanya baris yang diberikan kepada nilai maksimum tersebut.
df = df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])
Menggunakan kaedah ini mencapai hasil yang diingini untuk mengalih keluar baris pendua berdasarkan lajur A sambil mengekalkan baris dengan nilai tertinggi dalam lajur B.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Baris Pendua dalam DataFrame Sambil Mengutamakan Nilai Maksimum dalam Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!