秩相关系数是将数值换成顺序后的pearson相关系数,也就是说pandas.Dataframe.corr(method=‘spearman’)和pandas.Dataframe.rank().corr(method=‘pearson’)是等价的,但是前者慢到了令人发指的地步
import pandas as pd
import numpy as np
import time
cor=pd.DataFrame(np.random.rand(60,3000))
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
cor1=cor.corr(method='spearman')
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
cor2=cor.rank().corr(method='pearson')
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
print(cor1==cor2)
2020-02-04 11:41:47
2020-02-04 11:46:32
2020-02-04 11:46:34
0 1 2 3 4 5 … 2994 2995 2996 2997 2998 2999
0 True True True True True True … True True True True True True
1 True True True True True True … True True True True True True
2 True True True True True True … True True True True True True
3 True True True True True True … True True True True True True
4 True True True True True True … True True True True True True
… … … … … … … … … … … … …
2995 True True True True True True … True True True True True True
2996 True True True True True True … True True True True True True
2997 True True True True True True … True True True True True True
2998 True True True True True True … True True True True True True
2999 True True True True True True … True True True True True True
[3000 rows x 3000 columns]