2

我有一个 1222 行和 33000 列的数据框,我需要在 16000 与数据框中的剩余列之间运行相关性。目前,我正在使用scipy.statsPearson 相关方法从 python 中使用库。这是我正在尝试的功能:

from scipy.stats import pearsonr


def correlation_analysis(lncRNA_PC_T):
    """Function for correlation analysis"""
    correlations = pd.DataFrame()
    for PC in [column for column in lncRNA_PC_T.columns if "_PC" in column]:
        for lncRNA in [
            column for column in lncRNA_PC_T.columns if "_lncRNAs" in column
        ]:
            correlations = correlations.append(
                pd.Series(
                    pearsonr(lncRNA_PC_T[PC], lncRNA_PC_T[lncRNA]),
                    index=["PCC", "p-value"],
                    name=PC + "_" + lncRNA,
                )
            )

    return correlations

上面的代码正在完成它的工作,但是,因为我的数据框大小1222 X 33000确实需要 30 多分钟才能完成工作。如果有人能提出一些方法来提高大数据帧的这个函数的速度,那就太好了。谢谢

4

0 回答 0