1. ホーム
  2. パイソン

[解決済み】Python Pandasで複数列の重複した行をすべて削除する

2022-04-10 05:26:50

質問

その pandas drop_duplicates 関数は、データフレームを一意に決定するのに適しています。しかし、渡すべきキーワード引数の1つは take_last=True または take_last=False 一方、カラムのサブセットで重複している行をすべて削除したいのです。これは可能でしょうか?

    A   B   C
0   foo 0   A
1   foo 1   A
2   foo 1   B
3   bar 1   A

例として、カラムにマッチする行を削除したい。 AC ということで、0行目と1行目がドロップされるはずです。

解決方法は?

pandasでは、このようなことが簡単にできるようになりました。 drop_duplicates とkeepパラメータがあります。

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)