Pandas での連続した重複の削除
Pandas のdrop_duplicates() メソッドはすべての重複値を削除するのに効果的ですが、連続した重複を識別しません。 。この制限に対処するために、連続する重複のみを選択的に削除する効率的な方法があります。
1 つのアプローチでは、シフト関数を使用して現在の値を前の値と比較します。
a.loc[a.shift() != a]
このロジックは次の値を返します。連続する重複が False 値によって特徴付けられるマスク。次に、loc メソッドは True 値を持つ行のみを選択し、連続する重複を効果的に削除します。
別のメソッドは diff 関数を利用して変更を検出します。
a.loc[a.diff() != 0]
ただし、このアプローチは効率が低くなります。微分計算に関連するオーバーヘッドのため、大規模なデータセットの場合。
Update
デフォルトのシフト期間は 1 であるため、shift() と SHIFT( 1) 同等の結果を生成します:
a.loc[a.shift(1) != a]
これにより、最初の連続する値が重複として正しく識別されます。
以上がPandas で連続する重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。