Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghapuskan Baris Pendua dalam DataFrame, Menyimpan Hanya Baris dengan Nilai Tertinggi dalam Lajur Tertentu?

Bagaimana untuk Menghapuskan Baris Pendua dalam DataFrame, Menyimpan Hanya Baris dengan Nilai Tertinggi dalam Lajur Tertentu?

Linda Hamilton
Linda Hamiltonasal
2024-11-07 05:34:03429semak imbas

How to Eliminate Duplicate Rows in a DataFrame, Keeping Only the Rows with the Highest Values in a Specific Column?

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!

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