ホームページ >バックエンド開発 >Python チュートリアル >列ごとに重複を削除し、最大値の行を保持する方法

列ごとに重複を削除し、最大値の行を保持する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-16 11:35:03253ブラウズ

How to Remove Duplicates by Columns and Retain Rows with Maximum Values?

列ごとに重複を削除し、最大値を持つ行を保持する

データフレーム内で重複値に遭遇することは困難な場合があります。対応する値が最も大きい行を保持することが重要なシナリオでは、効果的な手法を採用することが不可欠になります。

この問題に対処するには、列 A に重複がある次のデータフレームを検討してください:

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

目的は、列 A から重複を削除し、列 B の最大値を持つ行を保持することです。理想的には、結果は次のようになります。

A B
1 20
2 40
3 10

1 つのアプローチは、データフレームを並べ替えることです。重複を削除する前:

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

このメソッドは機能しますが、行を昇順でソートするため、最大値の保持は保証されません。この制限を克服するには、次のアプローチを使用できます。

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

この操作は、データフレームを列 A ごとにグループ化し、列 B の最大値を持つインデックスを見つけて、対応する行を選択します。その結果、重複が削除され、最大値が保持された更新されたデータフレームが生成されます。

以上が列ごとに重複を削除し、最大値の行を保持する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。