Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menghapuskan Baris Pendua dalam DataFrame, Menyimpan Hanya Baris dengan Nilai Tertinggi dalam Lajur Tertentu?
Cara Menghapuskan Pendua mengikut Lajur, Mengekalkan Baris dengan Nilai Tertinggi
Apabila berhadapan dengan nilai pendua dalam satu lajur DataFrame, ia menjadi perlu untuk melaksanakan strategi untuk menghapuskannya. Satu pendekatan adalah untuk mengekalkan hanya baris dengan nilai tertinggi dalam lajur lain.
Pertimbangkan contoh ini DataFrame:
A B 1 10 1 20 2 30 2 40 3 10
Matlamatnya adalah untuk mengubah DataFrame ini menjadi:
A B 1 20 2 40 3 10
Satu kaedah melibatkan pengisihan DataFrame sebelum menghapuskan pendua:
df.sort_values(by='B', ascending=False).drop_duplicates(subset='A')
Walau bagaimanapun, untuk senario yang lebih kompleks yang melibatkan berbilang lajur dan keperluan pengisihan bernuansa, groupby boleh digunakan. Kod di bawah menunjukkan pendekatan ini:
df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])
Penyelesaian ini mengumpulkan baris mengikut lajur 'A' dan menghasilkan baris dengan nilai maksimum dalam lajur 'B' untuk setiap kumpulan.
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Baris Pendua dalam DataFrame, Menyimpan Hanya Baris dengan Nilai Tertinggi dalam Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!