微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决大型数据集上的 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 举报,一经查实,本站将立刻删除。