我需要结果具有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匹配?
答案 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]
,groupby
和nunique
:
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