每对分组之间的 pandas 相关矩阵 [英] pandas correlation matrix between each pair groupby item

查看:119
本文介绍了每对分组之间的 pandas 相关矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的csv文件:

I have a csv file like this:

date,sym,close
2014.01.01,A,10
2014.01.02,A,11
2014.01.03,A,12
2014.01.04,A,13
2014.01.01,B,20
2014.01.02,B,22
2014.01.03,B,23
2014.01.01,C,33
2014.01.02,C,32
2014.01.03,C,31

然后,通过read_csv函数获得一个名为df的日期框架

Then, I get a dateframe named df via read_csv function

import numpy as np
import pandas as pd
df=pd.read_csv('daily.csv',index_col=[0])
groups=df.groupby('sym')[['close']].apply(lambda x:func(x['close'].values))

groups看起来像这样:

sym
A    [nan,1.00,2.00,...]
B    [nan,1.00,2.00,...]
C    [nan,1.00,2.00,...]

如何计算每对符号之间的相关性?

How to calculate the correlation between each pair of sym?

AA,AB,AC,BB,BA,BC,CA,CB,CC

顺便说一句,每个符号的项目编号可能相同.

BTW, the item numbers of each sym may be NOT the same.

推荐答案

与上述的df一起,创建数据透视表:

With df as above, make a pivot table:

dfp = df.pivot('date','sym')
print(dfp)

           close        
sym            A   B   C
date                    
2014-01-01    10  20  33
2014-01-02    11  22  32
2014-01-03    12  23  31
2014-01-04    13 NaN  30

大熊猫将计算成对系数:

pandas will calculate the pairwise coefficients:

print(dfp.corr())

              close                    
sym               A         B         C
      sym                              
close A    1.000000  0.981981 -1.000000
      B    0.981981  1.000000 -0.981981
      C   -1.000000 -0.981981  1.000000

但是,如果您想美化它,请查看seaborn:

But if you want to prettify it, check out seaborn:

import seaborn as sns
sns.corrplot(dfp, annot=True)

结果:

这篇关于每对分组之间的 pandas 相关矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆