0
かなり精巧なコードを与えて、データフレームから重複を削除したいと思います。Pythonの複数の中断条件に応じて重複を削除してください
df = pd.DataFrame({'id' : [1, 1, 1, 1, 2, 2, 2, 3, 3],
'dup' : [1, 2, 2, 2, 3, 4, 4, 5, 5],
'a' : [False, True, False, True, False, True, False, False, False],
'b' : [False, False, True, True, False, False, False, False, False],
'data' : [0, 1, 2, 3, 0, 1, 2, 0, 0]})
a b data dup id
0 False False 0 1 1
1 True False 1 2 1
2 False True 2 2 1
3 True True 3 2 1
4 False False 0 3 2
5 True False 1 4 2
6 False False 2 4 2
7 False False 0 5 3
8 False False 0 5 3
id
が一緒に属しているとdup
は、データが重複したとみなされるに可変である行を示すデータフレームを考えてみましょう。したがって、行0〜3は一緒に属し、行1〜3は重複します。そして、と似列4〜6は一緒に属し、行5及び6等重複し
Iは、以下の規則に従って、重複を削除する:
- 行が存在する場合、その結果列の両方
a
AND列b
はTrue
であり、その行を保持して残りの部分を削除します。 - EITHER列
a
または列b
が重複行の1つを保持し、その行を保持し、いずれも1または2が発生した場合 - 残りをドロップ、
True
あるような行が存在する場合、条件1は、起こらない場合。それはどちらの問題ではない。
得られたフレームは、二つ以上の重複する行が行1及び2の両方が真で記載されているこの
a b data dup id
0 False False 0 3 2
1 True False 1 4 2
2 False True 2 4 2
ように同じ規則に従う場合についてこの
a b data dup id
0 False False 0 1 1
3 True True 3 2 1
4 False False 0 3 2
5 True False 1 4 2
7 False False 0 5 3
ようになりますこれらのケースは、データフレームにつながる論理に基づいては不可能です。
ニース!短くて甘い。ありがとうございました。 – mortysporty