pandas.Dataframe.corr(method='spearman')代码效率极低,会占用大量资源

秩相关系数是将数值换成顺序后的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]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值