Я работаю над своей дипломной работой, и у меня есть вопрос по части моего кода. Я пытаюсь подсчитать, сколько раз каждая пара столбцов в df
имеет одинаковое значение. Все столбцы являются двоичными (0, 1).
Входные данные имеют следующий формат:
df = pd.DataFrame([[1, 0, 1], [0, 0, 1]], columns = ["col1", "col2"])
Например, количество раз col1
и col2
имел такое же значение в приведенном выше фрагменте - 3.
Это код, который у меня есть до сих пор
bl1 = []
bl2 = []
overlap = []
for i in df.iterrows():
for j in range(len(df.columns)):
for k in range(j):
a = df.iloc[j]
b = df.iloc[k]
comparison_column = np.where(a == b)
bl1.append(df.columns[j])
bl2.append(df.columns[k])
overlap.append(len(comparison_column[0]))
После объединения списков в pd.Dataframe
результат выглядит следующим образом
Base Learner 1 Base Learner 2 overlap
col1 col2 2
Я знаю, что код не работает, потому что я подсчитал в Excel и получил разные результаты для подсчета перекрытий. Я подозреваю, что петли не суммируют количество раз, когда пара была обнаружена в части df.iterrows()
, но я не знаю, как это исправить. Пожалуйста, дайте мне любые предложения, которые вы можете. Спасибо.