Pracuję z dużym zestawem danych biologicznych.Obliczanie korelacji parami między wszystkimi kolumnami
Chcę obliczyć PCC (współczynnik korelacji Pearsona) wszystkich kombinacji 2-kolumnowych w mojej tabeli danych i zapisać wynik jako DataFrame lub plik CSV.
Tabela danych wygląda następująco: kolumny to nazwa genów, a wiersze to kod zbioru danych. Liczby zmiennoprzecinkowe oznaczają, ile gen jest aktywowany w zbiorze danych.
GeneA GeneB GeneC ...
DataA 1.5 2.5 3.5 ...
DataB 5.5 6.5 7.5 ...
DataC 8.5 8.5 8.5 ...
...
jako wyjście, chcę zbudować tabelę (DataFrame lub pliku CSV), jak poniżej, ponieważ scipy.stats.pearsonr funkcja zwraca (PCC, p-value). W moim przykładzie XX i YY oznaczają wyniki pearsonr ([1.5, 5.5, 8.5], [2.5, 6.5, 8.5]). W ten sam sposób ZZ i AA oznaczają wynik pearsonr ([1,5, 5,5, 8,5], [3,5, 7,5, 8,5]). Nie potrzebuję zbędnych danych, takich jak GeneB_GeneA lub GeneC_GeneB w moim teście.
PCC P-value
GeneA_GeneB XX YY
GeneA_GeneC ZZ AA
GeneB_GeneC BB CC
...
Ponieważ liczba kolumn i wierszy jest duża (ponad 100), a ich nazwy są skomplikowane, użycie nazw kolumn lub nazw wierszy będzie trudne.
Może to być prosty problem dla ekspertów, nie wiem jak sobie z tym poradzić w bibliotece Pythona i Pandy. Szczególnie tworzenie nowych DataFrame i dodawanie wyników wydaje się być bardzo trudne.
Przepraszamy za moje słabe wyjaśnienie, ale mam nadzieję, że ktoś mógłby mi pomóc.
Odpowiedziano tutaj: [link] (http://stackoverflow.com/questions/3949226/calculating-pearson-correlation-and-simnificance-in-python) – Glostas
Dziękuję za komentarz. Myślę, że tytuł nie był wystarczająco dobry. To, co chcę wiedzieć, to nie to, jak obliczyć PCC, ale obliczać PCC wszystkich par kolumn i zapisać wyniki jako nową ramkę DataFrame. – z991