У меня есть фрейм данных с булевыми столбцами, каждый из которых указывает, принадлежит ли запись категории:
import pandas as pd
example = pd.DataFrame({
"is_a": [True, False, True, True],
"is_b": [False, False, False, True],
"is_c": [True, False, False, True],
})
пример:
is_a is_b is_c
0 True False True
1 False False False
2 True False False
3 True True True
Я хочу посчитать количество совпадений между каждой парой категорий. В настоящее время я делаю это:
cols = ["is_a", "is_b", "is_c"]
output = pd.DataFrame(
{x: [(example[x] & example[y]).sum() for y in cols] for x in cols},
index=cols,
)
Выход:
is_a is_b is_c
is_a 3 1 2
is_b 1 1 1
is_c 2 1 2
Это дает мне правильный вывод, но мне интересно, если кто-то думает, что они нашли лучшее решение для этой проблемы.