大熊猫EW移动相关/协方差得到意想不到的形状

时间:2017-09-28 03:29:33

标签: pandas data-analysis

我有一个DataFrame dff,它的形状代表5个项目和4天。我创建了一个EWM ewmm并获得了EW移动平均线。

当涉及到相关性和协方差时,我预期的是5×5形状的矩阵,但结果形状为5×4×4。

我怎样才能做对?

In[59]: dff
Out[59]: 

   0  1  2  3
0  1  2  3  4
1  4  3  2  1
2  3  1  4  1
3  5  9  2  6
4  1  2  3  4
In[60]: ewmm = dff.ewm(span=2, axis=1)
In[61]: ewmm.mean()
Out[61]: 

     0     1         2      3
0  1.0  1.75  2.615385  3.550
1  4.0  3.25  2.384615  1.450
2  3.0  1.50  3.230769  1.725
3  5.0  8.00  3.846154  5.300
4  1.0  1.75  2.615385  3.550
In[62]: ewmm.corr()
Out[62]: 

<class 'pandas.core.panel.Panel'>
Dimensions: 5 (items) x 4 (major_axis) x 4 (minor_axis)
Items axis: 0 to 4
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 3
In[63]: ewmm.cov()
Out[63]: 

<class 'pandas.core.panel.Panel'>
Dimensions: 5 (items) x 4 (major_axis) x 4 (minor_axis)
Items axis: 0 to 4
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 3

1 个答案:

答案 0 :(得分:0)

我通过处理转置ddf.T得到了正确的答案。形状(4,5)代表4天和5个项目。

我认为在调用axis时,大熊猫不会考虑ewmm.cov()/ewmm.corr()

In[73]: dff = dff.T
In[74]: dff
Out[74]: 

   0  1  2  3  4
0  1  4  3  5  1
1  2  3  1  9  2
2  3  2  4  2  3
3  4  1  1  6  4
In[75]: ewmm = dff.ewm(span=2)
In[76]: ewmm.mean()
Out[76]: 

          0         1         2         3         4
0  1.000000  4.000000  3.000000  5.000000  1.000000
1  1.750000  3.250000  1.500000  8.000000  1.750000
2  2.615385  2.384615  3.230769  3.846154  2.615385
3  3.550000  1.450000  1.725000  5.300000  3.550000
In[77]: ewmm.corr()
Out[77]: 

<class 'pandas.core.panel.Panel'>
Dimensions: 4 (items) x 5 (major_axis) x 5 (minor_axis)
Items axis: 0 to 3
Major_axis axis: 0 to 4
Minor_axis axis: 0 to 4
In[78]: ewmm.corr()[3]
Out[78]: 

          0         1         2         3         4
0  1.000000 -1.000000 -0.532986  0.145400  1.000000
1 -1.000000  1.000000  0.532986 -0.145400 -1.000000
2 -0.532986  0.532986  1.000000 -0.908437 -0.532986
3  0.145400 -0.145400 -0.908437  1.000000  0.145400
4  1.000000 -1.000000 -0.532986  0.145400  1.000000