Как получить Пересечение и Объединение двух Серий в Пандах с неуникальными значениями?
Если бы у меня было 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