python - 在 python 中的三个重叠集中查找增量

标签 python pandas numpy set

x = [1,2,3,4,5,6,7]
y = [2,1,4,5,8,10]
z = [7,1,3,6,0]

如何在这三个列表的维恩图中找到所有元素(或者我什至可以使用集合)

enter image description here

我正在使用大小为 500-1000 的 DataFrame。我尝试使用数据帧的条件子集。 在 python 中有更简单、更简单的方法吗? 我对集合、numpy 数组甚至列表持开放态度。

最佳答案

给定:

x = [1,2,3,4,5,6,7]
y = [2,1,4,5,8,10]
z = [7,1,3,6,0]

尝试:

x = set([1,2,3,4,5,6,7])
y = set([2,1,4,5,8,10])
z = set([7,1,3,6,0])

然后您可以通过以下方式找到交叉点:

xy = x.intersection(y)
xyz = x.intersection(y).intersection(z)
# and
xyz = x & y & z

另请参阅:https://docs.python.org/2/library/sets.html#set-objects

所有增量:

我使用约定“x_”表示“不在 x 中”

x_y_z = z.difference(x).difference(y)
x_yz_ = y.difference(x).difference(z)
x_yz = y.intersection(z).difference(x)
xy_z_ = x.difference(y).difference(z)
xy_z = x.difference(y).intersection(z)
xyz_ = x.intersection(y).difference(z)
xyz = x.intersection(y).intersection(z)

关于python - 在 python 中的三个重叠集中查找增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897552/

相关文章:

python - Scipy 给出矩阵乘法的错误结果

python - 将 numpy 数组作为变量添加到 Xarray 数据集

python - EC2 Enchant 找不到字典 en_US

python - 在 whois 包中扩展 Python 模块

python - 为 Pandas 中的列添加具有重复值的数字

python - 是否有 pandas 函数来转置数据框,为现有列的每个唯一值创建一个单独的列?

python - 从txt读取后如何合并数据帧

Python 3 - 类型错误 : 'map' object is not subscriptable

python - sqlite 删除非 utf-8 字符

python - 在 numpy 数组列表中获取唯一值