Bagaimana Mengekalkan Baris dengan Nilai Maksimum dalam Lajur B untuk Nilai Pendua dalam Lajur A?

Mary-Kate Olsen
Lepaskan: 2024-11-07 04:27:02
asal
603 orang telah melayarinya

How to Keep Rows with Maximum Values in Column B for Duplicate Values in Column A?

Mencari Baris dengan Nilai Lajur B Maksimum untuk Nilai Lajur A Pendua

Dalam analisis data, selalunya perlu mengalih keluar rekod pendua sambil mengekalkan data unik. Senario biasa melibatkan set data dengan nilai pendua dalam lajur tertentu (lajur A), di mana matlamatnya adalah untuk mengekalkan baris dengan nilai tertinggi dalam lajur lain (lajur B).

Untuk mencapai ini, yang pertama penyelesaian menggunakan fungsi drop_duplicates() dengan parameter keep="last". Ini menjatuhkan baris pendua berdasarkan lajur A sambil mengekalkan baris terakhir dilihat, tanpa mengira nilai dalam lajur B.

Walau bagaimanapun, jika objektifnya adalah untuk mengekalkan baris dengan nilai maksimum dalam lajur B, perkara di atas penyelesaian tidak sesuai. Sebaliknya, gabungan groupby() dan apply(), serupa dengan penyelesaian kedua yang disediakan, boleh digunakan. Pendekatan ini mengumpulkan baris mengikut lajur A, menggunakan fungsi pada setiap kumpulan dan memilih baris dengan nilai maksimum dalam lajur B dalam setiap kumpulan.

Pelaksanaan:

import pandas as pd

# Create data frame with duplicate values in column A
df = pd.DataFrame([[1, 10], [1, 20], [2, 30], [2, 40], [3, 10]], columns=['A', 'B'])

# Keep row with maximum value in column B for each duplicate in column A
max_b_rows = df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])

# Display resulting data frame
print(max_b_rows)
Salin selepas log masuk

Output:

   A   B
A       
1  1  20
2  2  40
3  3  10
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Mengekalkan Baris dengan Nilai Maksimum dalam Lajur B untuk Nilai Pendua dalam Lajur A?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!