测试是否在pandas DataFrame的多个列中共享了值

时间:2018-02-01 15:53:55

标签: python pandas

如何测试是否在pandas DataFrame的多个列中共享了值?例如,这没关系:

      A    B    C
0   aaa  fff  lll
1   bbb  ggg  mmm
2   ccc  hhh  nnn
3   ddd  iii  ooo
4   eee  jjj  ppp

但这不是

      A    B    C
0   aaa  fff  lll
1   bbb  ggg  mmm
2   ccc  hhh  nnn
3   ddd  iii  bbb
4   eee  jjj  ppp

因为bbb存在于多个列(A和C)中。

1 个答案:

答案 0 :(得分:1)

首先在所有列组合之间进行交集,转换为/node_modules/@angular/...,然后转换为ncu并测试至少一个numpy array

boolean

对于第一个df:

True

第二个df:

from itertools import combinations
a = [set(df[i[0]]) & set(df[i[1]]) for i in combinations(df.columns,2)]
b = np.array(a).astype(bool).any()

有关更多信息,可以使用(未​​经测试):

print (a)
[set(), set(), set()]

print (b)
False