Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mengalih keluar Baris Pendua dalam DataFrame Sambil Mengutamakan Nilai Maksimum dalam Lajur Tertentu?

Bagaimana untuk mengalih keluar Baris Pendua dalam DataFrame Sambil Mengutamakan Nilai Maksimum dalam Lajur Tertentu?

Susan Sarandon
Susan Sarandonasal
2024-11-11 06:16:02501semak imbas

How to Remove Duplicate Rows in a DataFrame While Prioritizing Maximum Values in a Specific Column?

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!

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