Как получить Пересечение и Объединение двух Серий в Пандах с неуникальными значениями?

Если бы у меня было 2 объекта Серии, вот так: [0,0,1] [1,0,0] Как бы я получил пересечение и объединение двух? Они содержат только логические значения, что означает, что они не являются уникальными значениями.

У меня есть большая логическая матрица. Я помешался на этом, и теперь я пытаюсь найти ложные положительные и отрицательные стороны, что, как мне кажется, означает, что я должен получить сходство Жакара для каждой исходной пары.

1 ответ

Решение

Так как вы говорите, что они используют булевы logical_and а также logical_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
Другие вопросы по тегам