大型数据集上的 Pearsonr 和 pvalues,包括空值

问题描述

我有一个包含约 375 个细胞系和约 14,000 个基因的数据文件。我正在尝试计算每个基因与其他每个基因的成对相关性。

代码非常简单,因为我使用的是 pingouin 包:

import pandas as pd
import pingouin as pg
df = pd.read_csv("cclE Proteomics.csv",index_col=0,header=0)
df_corr = df.rcorr(stars=False)
print(df_corr)

尝试运行此代码返回:

ValueError: x and y must have length at least 2.

Pingouin 使用 Scipy pearsonr 进行计算,使用 pearsonr 而没有 Pinouin 会返回相同的错误

我还尝试使用虚拟数据集(随机数的 5x7 数据帧),该数据集在不包含任何空值时工作正常,但如果数据帧中存在空值,则返回相同的错误。基于这一点,我相信我的数据集中的空值导致了这个问题——不幸的是,数据是参差不齐的,删除所有包含空值的行/列会让我没有剩下的行/列,在虚拟数据集中甚至一个 NaN值足以引发错误。由于 rcorr 在输入 pearsonr 之前删除了 NaN 值,我相信它会丢弃我所有的数据点并且没有任何可以输入的内容

df.corr 可以很好地计算我的 r 值,但我也需要一种方法来计算此数据集的 p 值,因为我们预计这些相关性中有很多是无关紧要的。

>

有没有一种方法可以在不删除整个行/列的情况下删除/屏蔽数据集中的 NaN 值?有没有办法用 (nan_policy:'omit') 运行与 spearmanr 类似的 pearsonr?我是不是偏离了基础,这里的问题不是 NaN 值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)