ホームページ >バックエンド開発 >Python チュートリアル >特定の列に基づいて Pandas で重複行を削除する方法は?
Python Pandas の複数の列に基づいて重複行を削除する
Pandas のdrop_duplicates 関数は、DataFrame から重複行を削除する効率的な方法を提供します。 。ただし、特定の列セットで一致する場合にのみ行を削除したい場合はどうすればよいでしょうか?
問題:
列 "A"、" を持つ DataFrame を考えてみましょう。 B」と「C」。列「A」と「C」の値が同じ行を削除するとします。つまり、この例の DataFrame:
A | B | C | |
---|---|---|---|
0 | foo | 0 | A |
1 | foo | 1 | A |
2 | foo | 1 | B |
3 | bar | 1 | A |
の行 0 と 1 を識別して削除する必要があります。解決策:
を使用すると、これを簡単に実現できます。 drop_duplicates 関数とサブセット パラメーター:
import pandas as pd df = pd.DataFrame({"A": ["foo", "foo", "foo", "bar"], "B": [0, 1, 1, 1], "C": ["A", "A", "B", "A"]}) df.drop_duplicates(subset=['A', 'C'], keep=False)
keep= パラメーターは、重複を削除するかどうかを指定します。最初の出現を含む行を選択するか、それらの行を除外します。 False に設定すると、すべての重複が削除されます。
結果は、行 0 と 1 が削除された DataFrame となり、列 "A" と "C" に基づく一意の行のみが残ります:
A | B | C | |
---|---|---|---|
0 | foo | 1 | B |
1 | bar | 1 | A |
以上が特定の列に基づいて Pandas で重複行を削除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。