如何在具有非唯一值的Pandas中获得两个系列的交集和联合?

时间:2017-11-18 05:29:38

标签: python pandas minhash

如果我有2个Series对象,如下所示:[0,0,1] [1,0,0] 我怎样才能得到两者的交集和结合? 它们只包含布尔值,这意味着它们是非唯一值。

我有一个很大的布尔矩阵。我已经把它搞砸了,现在我试图找到误报和否定,我认为这意味着我必须得到每个原始对的Jaccard相似性。

1 个答案:

答案 0 :(得分:1)

因为你说他们是布尔人,所以使用logical_andlogical_or numpy或&|关于系列,

y1 = pd.Series([1,0,1,0])
y2 = pd.Series([1,0,0,1])

# Numpy approach 
intersection = np.logical_and(y1.values, y2.values)
union = np.logical_or(y1.values, y2.values)
intersection.sum() / union.sum()
# 0.33333333333333331

# Pandas approach 
sum(y1 & y2) / sum(y1 | y2)
# 0.33333333333333331