【发布时间】:2023-03-27 23:34:01
【问题描述】:
我正在处理大型生物数据集。
我想计算我的数据表中所有 2 列组合的 PCC(Pearson 相关系数)并将结果保存为 DataFrame 或 CSV 文件。
数据表如下:columns是基因的名称,rows是dataset的代码。浮点数表示数据集中基因被激活的程度。
GeneA GeneB GeneC ...
DataA 1.5 2.5 3.5 ...
DataB 5.5 6.5 7.5 ...
DataC 8.5 8.5 8.5 ...
...
作为输出,我想构建如下表(DataFrame 或 csv 文件),因为 scipy.stats.pearsonr 函数返回(PCC,p 值)。 在我的示例中,XX 和 YY 表示 pearsonr([1.5, 5.5, 8.5], [2.5, 6.5, 8.5]) 的结果。同理,ZZ 和 AA 表示 pearsonr([1.5, 5.5, 8.5], [3.5, 7.5, 8.5]) 的结果。我的测试中不需要 GeneB_GeneA 或 GeneC_GeneB 等冗余数据。
PCC P-value
GeneA_GeneB XX YY
GeneA_GeneC ZZ AA
GeneB_GeneC BB CC
...
由于列数和行数多(超过100),名称复杂,使用列名或行名会很困难。
这对于专家来说可能是一个简单的问题,我不知道如何用python和pandas库处理这种表。尤其是制作新的DataFrame并添加结果似乎非常困难。
对不起,我的解释很糟糕,但我希望有人能帮助我。
【问题讨论】:
-
这里回答:link
-
感谢您的评论。我认为标题不够好。我想知道的不是如何计算PCC,而是计算所有列对的PCC,并将结果保存为新的DataFrame。
标签: python pandas correlation