我正在尝试使用Pandas解决一个问题,因为一个白痴DBA没有备份现在崩溃的数据集,所以我试图找到两列之间的差异.由于我不会涉及的原因,我使用的是Pandas而不是数据库.
我想做的是,给出:
Dataset A = [A, B, C, D, E]
Dataset B = [C, D, E, F]
Run Code Online (Sandbox Code Playgroud)
我想找到不相交的价值观.
Dataset A!=B = [A, B, F]
Run Code Online (Sandbox Code Playgroud)
在SQL中,这是标准的集合逻辑,根据方言的不同而不同,但是标准函数.我如何在熊猫中优雅地应用它?我想输入一些代码,但我所拥有的甚至是远程正确的.这是一种我不知道我不知道的情况.....熊猫为交叉和联合设定了逻辑,但没有任何关于不相交/设定差异的东西.
谢谢!
你可以使用这个set.symmetric_difference
功能:
In [1]: df1 = DataFrame(list('ABCDE'), columns=['x'])
In [2]: df1
Out[2]:
x
0 A
1 B
2 C
3 D
4 E
In [3]: df2 = DataFrame(list('CDEF'), columns=['y'])
In [4]: df2
Out[4]:
y
0 C
1 D
2 E
3 F
In [5]: set(df1.x).symmetric_difference(df2.y)
Out[5]: set(['A', 'B', 'F'])
Run Code Online (Sandbox Code Playgroud)