Я думаю, вы ищете это: это позволит получить корреляцию по столбцам между каждыми двумя парами столбцов между фреймами данных X и Y и создаст еще один фрейм данных, в котором будут сохранены все корреляции и пройдут ли они пороговое значение альфа: это предполагает Y имеет меньшее или равное количество столбцов, как X. Если не просто поменять местами X и Y:
import collections
corr_df = pd.DataFrame(columns=['col_X', 'col_Y', 'corr', 'is_correlated'])
d = collections.deque(X.columns)
Y_cols = Y.columns
alpha = 0.05
for i in range(len(d)):
d.rotate(i)
X = X[d]
corr = Y.corrwith(X, axis=0)
corr_df = corr_df.append(pd.DataFrame({'col_X':list(d)[:len(Y_cols)], 'col_Y':Y.columns, 'corr':corr[:len(Y_cols)], 'is_correlated':corr[:len(Y_cols)]>alpha}))
print(corr_df.reset_index())
образец ввода и вывода:
X:
A B C
0 2 2 10
1 4 0 2
2 8 0 1
3 0 0 8
Y:
B C
0 2 10
1 0 2
2 0 1
3 0 8
correlation(X, Y):
col_X col_Y corr is_correlated
0 A B 1.0 True
1 B C 1.0 True
2 C B 1.0 True
3 A C 1.0 True
4 A B 1.0 True
5 B C 1.0 True