ホームページ > バックエンド開発 > Python チュートリアル > 特定の列の最大値を優先しながらデータフレーム内の重複行を削除する方法

特定の列の最大値を優先しながらデータフレーム内の重複行を削除する方法

Susan Sarandon
リリース: 2024-11-11 06:16:02
オリジナル
497 人が閲覧しました

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

列 B の最大値を優先しながら重複行を削除する

DataFrame 内の重複行の処理は、多くの場合課題を引き起こす可能性があります。この場合の目的は、列 A の値に基づいて重複行を削除し、最も高い値を持つ行を列 B に保持することです。

これを達成するには、演算を組み合わせて適用できます。まず、sort_values 関数を使用して、DataFrame を列 B で降順に並べ替えることができます。これにより、列 B の値が最も高い行が先頭に配置されます。

df = df.sort_values('B', ascending=False)
ログイン後にコピー

次に、drop_duplicates 関数を使用して、列 A の値に基づいて重複行を削除できます。ただし、優先順位を維持するには、行の場合、keep パラメータは last に設定されます。これにより、最新の行 (通常は列 B で最も高い値を持つ行) が確実に保持されます。

df = df.drop_duplicates(subset='A', keep='last')
ログイン後にコピー

あるいは、groupby 関数と apply を組み合わせてタスクを実行することもできます。このアプローチでは、DataFrame を列 A ごとにグループ化し、各グループにラムダ関数を適用します。ラムダ関数内では、idxmax メソッドを使用して、列 B の最大値を持つ行のインデックスを識別します。結果の DataFrame には、それらの最大値に割り当てられた行のみが含まれます。

df = df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])
ログイン後にコピー

これらのメソッドの適用これにより、列 B の最も高い値を持つ行を保持しながら、列 A に基づいて重複行を削除するという望ましい結果が得られます。

以上が特定の列の最大値を優先しながらデータフレーム内の重複行を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート