实施例
import pandas as pd
import numpy as np
frame1 = pd.DataFrame(np.arange(1000), columns=['a'])
frame2 = pd.DataFrame(np.arange(1000)**2, columns=['a'])
c1 = frame1.corrwith(frame2) # 0.968185
c2=np.corrcoef(frame1['a'],frame2['a'])[0][1] # 0.96818535723302579
这似乎没问题,但是
frame1 = pd.DataFrame(np.arange(10000), columns=['a'])
frame2 = pd.DataFrame(np.arange(10000)**2, columns=['a'])
c1 = frame1.corrwith(frame2) # 2.31913 ???????
c2=np.corrcoef(frame1['a'],frame2['a'])[0][1] # 0.96823978537480138
那么,为什么c1大于1(这当然是不可能的相关值)?
看到评论后更新
我使用旧版本(0.10),升级到版本0.13.0rc1后问题已解决。