如何使用Scipy打印显著相关的候选项



我有一个大数据帧(15000,3000),如下所示:

row_name,col1,col2,col3
row1,22,33,44
row2,46,87,90
row3,23,51,12

我使用Scipy对行执行spearman更正,如下所示:

import pandas as pd
from scipy import stats
df =pd.read_csv('my_dataframe.csv',index_col=0)
r, p =stats.spearmanr(df.T)

我可以访问相关值和它们的相对p值,但我想要的是-通过为r和p值指定特定的截断,我想让这些值对打印如下:

。r比;0和p <0.7

row1,row2,r-value,p-value
row1,row3,r-value,p-value

考虑到我看不同的Stackoverflow问题关于这个(像这个),我仍然没有能够找到一个简单的解决方案。你有什么建议吗?

提前谢谢你。

我自己编写了这个脚本,这样可以帮助我得到我想要的输出。输出需要后处理

import pandas as pd
from scipy import stats
df =pd.read_csv('my_dataframe.csv',index_col=0)
lst1=[]
lst2=[]
for i in df.T.columns:
lst1.append(i)
lst2.append(i)
for i in lst1:
for j in lst2:
if i!=j:
r, p = stats.spearmanr(df.T[i], df.T[j])
#if r > 0 and p < 0.7: condition can be added here
Data=str(i) + ',' + str(j) + ',' + str(r) + ',' + str(p)
print(Data)

输出:

row1,row2,1.0,0.0
row1,row3,-0.5,0.6666666666666667
row2,row1,1.0,0.0
row2,row3,-0.5,0.6666666666666667
row3,row1,-0.5,0.6666666666666667
row3,row2,-0.5,0.6666666666666667

相关内容

  • 没有找到相关文章

最新更新