Найти наиболее коррелированные пары элементов между двумя столбцами в Pandas - PullRequest
0 голосов
/ 12 марта 2020

У меня есть датафрейм с несколькими столбцами, записи которых являются строками. Мне нужно найти наиболее коррелированные пары (отсортированные) между двумя столбцами по моему выбору. Пока мой код:

col1 = 'cats'
col2 = 'dogs'

oe = OrdinalEncoder()

df = final_clean[[str(col1), str(col2)]]
categ_df = pd.DataFrame(oe.fit_transform(df), columns=[col1, col2])

corr_mat = categ_df.corr().abs()
s = corr_mat.unstack()
sorted_vals = s.sort_values(kind="quicksort", ascending=False)

sorted_vals[:10]

возвращает

cats  cats    1.000000
dogs  dogs    1.000000
cats  dogs    0.030865
dogs  cats    0.030865
dtype: float64

Таким образом, он строит матрицу корреляции между самими столбцами, а не парами элементов. Как я могу изменить этот код, чтобы он давал мне пары элементов, отсортированных по корреляции?

...