首頁  >  文章  >  後端開發  >  如何消除 DataFrame 中的重複行,僅保留特定列中具有最高值的行?

如何消除 DataFrame 中的重複行,僅保留特定列中具有最高值的行?

Linda Hamilton
Linda Hamilton原創
2024-11-07 05:34:03429瀏覽

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

如何按列消除重複項,保留具有最高值的行

當DataFrame 的一列中遇到重複值時,它有必要實施消除它們的策略。一種方法是僅保留另一列中具有最高值的行。

考慮此範例DataFrame:

A B
1 10
1 20
2 30
2 40
3 10

目標是將此DataFrame 轉換為:

A B
1 20
2 40
3 10

一種方法是在消除重複項之前對DataFrame 進行排序:

df.sort_values(by='B', ascending=False).drop_duplicates(subset='A')

但是,對於涉及多列和細微排序要求的更複雜場景,可以使用groupby。下面的程式碼示範了這種方法:

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

此解決方案按「A」列對行進行分組,並為每個組產生在「B」列中具有最大值的行。

以上是如何消除 DataFrame 中的重複行,僅保留特定列中具有最高值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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