0
我想从给定一些相当复杂的编码的数据框中删除重复项。考虑数据帧根据Python中的多个interpendant条件删除重复项
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是重复等
我想根据以下规则,以便移除重复:
- ,如果存在一个行,使得两个柱
a
AND列b
是True
,保留该行并放弃其余部分。 - 条件1不会发生,如果存在行,使得其中任何一列
a
或列b
是True
,保留该行并删除其余 - 如果没有1或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
关于情况下两个以上的重复的行服从这样
a b data dup id
0 False False 0 3 2
1 True False 1 4 2
2 False True 2 4 2
根据真实其中两个行1和2是相同的规则规则2.根据导致数据框的逻辑,这些情况是不可能的。
不错!简短而甜美。谢谢。 – mortysporty