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

Linda Hamilton
發布: 2024-11-07 05:34:03
原創
439 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!