首頁  >  文章  >  後端開發  >  如何刪除資料幀中的重複行,同時優先考慮特定列中的最大值?

如何刪除資料幀中的重複行,同時優先考慮特定列中的最大值?

Susan Sarandon
Susan Sarandon原創
2024-11-11 06:16:02440瀏覽

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

刪除重複行,同時優先考慮 B 列中的最大值

處理 DataFrame 中的重複行通常會帶來挑戰。在這種情況下,目標是根據 A 列中的值消除重複行,並保留 B 列中具有最高值的行。

要達到此目的,可以應用多種操作的組合。首先,可以使用 sort_values 函數以 B 列降序對 DataFrame 進行排序。這會將 B 列中具有最高值的行排列在頂部。

df = df.sort_values('B', ascending=False)

接下來,可以使用 drop_duplicates 函數根據 A 列中的值刪除重複行。但是,為了保持優先權rows,keep參數設定為last。這可確保保留最新出現的行(通常是 B 列中具有最高值的行)。

df = df.drop_duplicates(subset='A', keep='last')

或者,可以利用 groupby 函數與 apply 結合來完成任務。此方法按 A 列將 DataFrame 分組,並對每個群組套用 lambda 函數。在 lambda 函數中,idxmax 方法用於識別具有 B 列最大值的行的索引。產生的 DataFrame 僅包含指派給這些最大值的行。

df = df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])

應用這些方法達到了基於 A 列刪除重複行的預期結果,同時保留 B 列中具有最高值的行。

以上是如何刪除資料幀中的重複行,同時優先考慮特定列中的最大值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn