我有一个 1222 行和 33000 列的数据框,我需要在 16000 与数据框中的剩余列之间运行相关性。目前,我正在使用scipy.stats
Pearson 相关方法从 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 多分钟才能完成工作。如果有人能提出一些方法来提高大数据帧的这个函数的速度,那就太好了。谢谢