ホームページ  >  記事  >  バックエンド開発  >  Pandas で連続する重複を効率的に削除するにはどうすればよいですか?

Pandas で連続する重複を効率的に削除するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-13 17:29:02512ブラウズ

How to Efficiently Drop Consecutive Duplicates in Pandas?

Pandas での連続する重複の効率的な削除

pandas DataFrame を使用する場合、多くの場合、重複値を削除する必要があります。ただし、組み込みのdrop_duplicates() メソッドは、連続した重複を含む重複値のすべてのインスタンスを削除します。連続した重複のみを削除する必要がある場合には、より効率的な方法を利用できます。

1 つの方法には、shift() 関数の使用が含まれます。 DataFrame をそのシフトされたバージョン (a.shift(-1)) と比較することにより、連続した重複が発生する場所を識別するブール マスクを作成できます。次の例に示すように、このマスクを使用して一意の値のみを選択できます。

a.loc[a.shift(-1) != a]

別の方法では diff() 関数を利用します。行間の差異を計算し、連続する重複を識別するために使用できます。ただし、大規模なデータセットの場合は、shift() メソッドよりも遅くなります。

使用:

a.loc[a.diff() != 0]

元の回答では、期間 -1 でshift() を使用することを提案していましたが、正しい使用法です。デフォルトのシフト期間は 1 なので、shift(1) (または単純にshift()) です。この変更により、最初の連続した値のみが返されるようになります:

a.loc[a.shift(1) != a]

shift() と diff() の両方これらのメソッドは、Pandas で連続する重複を削除する効率的な方法を提供するものであり、特定のコンテキストとパフォーマンス要件に基づいて検討する必要があります。

以上がPandas で連続する重複を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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