每对分组之间的 pandas 相关矩阵 [英] pandas correlation matrix between each pair groupby item
本文介绍了每对分组之间的 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屋!
查看全文