查找与另一列中多个匹配的列

时间:2019-01-20 05:48:28

标签: python pandas dataframe

我需要结果具有1:1的基数,所以我需要测试COL1中的一个值是否在COL2中存在一次以上

COL1    COL2
A   1
B   2
B   2
B   3
C   4
D   5
E   5
E   5

使用Python(最好是熊猫,除非存在更好的方法),我想查看COL1中的值在COL2中具有多个匹配项的所有行吗?在上面的示例中,我想知道何时COL1 = B在COL2中具有多个匹配项(即,在COL1 = B中的基数匹配/并与COL2 = 2以及3匹配?

1 个答案:

答案 0 :(得分:1)

如果只希望违反此条件的行,请使用import store from './yourStore'; export default class ExampleClass { public static doSomething(): string { // ... store.BarStore.setBar(1000) return "Some string" } } 并检查groupby

nunique

或者,使用df[df.groupby('COL1').COL2.transform('nunique') > 1] groupbynunique

map

如果您希望将COL1值映射到COL2值,则可以使用其他df[df.COL1.map(df.groupby('COL1').COL2.nunique()) > 1] COL1 COL2 1 B 2 2 B 2 3 B 3 groupby

apply

最后,如果您想要的只是1个以上的COL1值的“基数”,请使用

df[df.groupby('COL1').COL2.transform('nunique') > 1].groupby('COL1').COL2.apply(set)

COL1
B    {2, 3}
Name: COL2, dtype: object