我需要结果具有1:1的基数,因此我需要测试COL1中的值是否在COL2中存在一次以上,并忽略数据框中的所有其他列。
COL1 COL2 COL3
A 1 1
B 2 2
B 2 4
B 3 4
C 4 5
D 5 6
E 5 6
E 5 7
使用Python(最好是熊猫,除非存在更好的方法),我想查看COL1中的值在COL2中具有多个匹配项的所有行吗?在上面的示例中,我想知道何时COL1 = B在COL2中具有超过1个匹配项(即,在评估时忽略所有其他列(即COL3)时,COL1 = B的基数与COL2 = 2以及3匹配/联接)? '
@coldspeed为我提供了此解决方案,如果我的df仅是COL1&COL2,则该方法有效。现在,我需要将这种类似的解决方案应用于具有更多列的df,但是我不在乎它们中的值,只需测试COL1和COL2即可。这是@coldspeed的适用于COL1和COL2的代码:
df[df.groupby('COL1').COL2.transform('nunique') > 1]