У меня есть два набора данных из файлов .csv, теперь как pandas dataframes:
Набор данных 1: 20 x 1000 (строки x столбец)
Данныеустановить 2: 130 x 1000 (строки x столбец)
Используя Python, я хотел бы рассчитать корреляцию Пирсона по всем столбцам между двумя наборами данных , поэтому яв итоге получим матрицу 20 x 130 (строки x столбец) с коэффициентами корреляции в ячейках.
Моя цель - выяснить, существуют ли соответствующие кластеры между 20 и 130 строкамивсе данные в 1000 столбцах.
df1.shape
(130, 1000)
df2.shape
(20, 1000)
Моя цель:
df_output.shape
(130, 20)
Я попробовал следующее: я вычисляю коэффициент корреляции по одной ячейке за раз, таким образом вычисляя корреляцию Пирсона между столбцами (1000).
s2 = df2.T.iloc[0,:]
s1 = df1.T.iloc[0,:]
s1.corr(s2, method='pearson')
Затем я попытался выполнить циклстроки матриц.
corlist = []
for j in range(20):
s2 = df2.T.iloc[j,:]
for i in range(130):
s1 = df1.T.iloc[i,:]
cor = s1.corr(s2, method='pearson')
corlist.append(cor)
#np.savetxt('')
Есть ли более простой способ сделать это? Спасибо.