[英]pandas inclusive unique values from two columns
我找不到从A
列和B
列中选择唯一行的任何优雅方法,但不能联合使用,也不能按顺序进行。 这是为了保持这两列唯一值的“包含”交集。
我的目标是在A
和B
列中保留尽可能多的唯一值。 这些列被共同考虑,但是我正在寻找它们值的所有独特“组合” ...
样本数据框
df1 = pd.DataFrame({"A": [ "A1", "A2", "A2", "A3", "A3", ],
"B": [ "B1", "B1", "B2", "B3", "B1", ], },
index=[ 0, 1, 2, 3, 4, ])
结果:
A B
0 A1 B1
1 A2 B1
2 A2 B2
3 A3 B3
4 A3 B1
这没有什么用处...
df2 = df1.drop_duplicates( subset=[ "A", "B", ], keep="first", inplace=False, )
结果:
A B
0 A1 B1
1 A2 B1
2 A2 B2
3 A3 B3
4 A3 B1
下面的代码留下了重复的B1
,以后可以使用B
列上的drop_duplicates
删除它,但是随后A2
也将被删除,并且如果它与B2
一起存在于行中,则可以将其保留,因为它位于原始index=2
处数据框。
df3 = df1.drop_duplicates( subset=[ "A", ], keep="first", inplace=False, )
结果:
A B
0 A1 B1
1 A2 B1
3 A3 B3
如上所述, A2
已删除,但是有一个选项可以保留它,如果它与B2
一起存在于一行中,就像它在原始数据帧的index=2
处一样。
df4 = df3.drop_duplicates( subset=[ "B", ], keep="first", inplace=False, )
A B
0 A1 B1
3 A3 B3
所需结果:
A B
0 A1 B1
1 A2 B2
2 A3 B3
因此,我的目标是在A
和B
列中保留尽可能多的唯一值。 这些列被共同考虑,但是我正在寻找它们值的所有独特“组合” ...
尝试以下代码:
df1.drop_duplicates( subset=[ "A" and "B"], keep="first", inplace=False, )
输出:
A B
0 A1 B1
2 A2 B2
3 A3 B3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.