Вычислить корреляцию Пирсона между двумя 2D наборами данных в Python - PullRequest
0 голосов
/ 14 октября 2019

У меня есть два набора данных из файлов .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('')

Есть ли более простой способ сделать это? Спасибо.

...