ホームページ >バックエンド開発 >Python チュートリアル >データフレーム内の重複行を削除し、特定の列の最高値を持つ行のみを保持する方法

データフレーム内の重複行を削除し、特定の列の最高値を持つ行のみを保持する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 05:34:03514ブラウズ

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

列ごとに重複を排除し、最も高い値を持つ行を保持する方法

DataFrame の 1 つの列に重複値がある場合、それらを排除するための戦略を実行することが必要になります。 1 つのアプローチは、別の列に最も高い値を持つ行のみを保持することです。

この DataFrame の例を考えてみましょう:

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

目標は、この DataFrame を次のように変換することです:

A B
1 20
2 40
3 10

1 つの方法では、重複を排除する前に 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' の最大値を持つ行を生成します。

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

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