我正在尝试使用 Pandas 来解决一个白痴 DBA 没有对现已崩溃的数据集进行备份的问题,因此我正在尝试查找两列之间的差异。由于我不会详细说明的原因,我使用的是 Pandas 而不是数据库。
我想做的是,考虑到:
Dataset A = [A, B, C, D, E]
Dataset B = [C, D, E, F]
我想找到不相交的值。
Dataset A!=B = [A, B, F]
在 SQL 中,这是标准的集合逻辑,根据方言的不同以不同的方式完成,但这是一个标准函数。我如何在 Pandas 中优雅地应用它?我很想输入一些代码,但我所拥有的都不是正确的。这是一种我不知道我不知道的情况...... Pandas 为交集和并集设置了逻辑,但没有为不相交/集合差异设置逻辑。
谢谢!
您可以使用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'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)