部分日期的Pandas DataFrame相关性

时间:2017-07-06 10:45:33

标签: python pandas dataframe correlation

我有一个Pandas数据框,它具有七年期限的DateTime指数和10种不同资产的价格数据。我想运行dataframe.corr函数来评估资产之间的关系,我的问题是我想在特定月份运行corr函数。所以在所有年份的1月份,相关性是什么?

从我读过的内容来看,如果我分组的时候我可能会失去正确的时间进度,这会使相关性分析失效。

如何按月对数据框进行分组并保持时间顺序?

1 个答案:

答案 0 :(得分:1)

使用month从DatetimeIndex中提取月份。然后groupby import numpy as np import pandas as pd N = 100 index = pd.date_range('2000-1-1', periods=N, freq='B') df = pd.DataFrame(np.random.random((N,3)), index=index) df['month'] = df.index.month result = df.groupby('month').corr() print(result.head(9))

                0         1         2
month                                
1     0  1.000000 -0.000325 -0.208282
      1 -0.000325  1.000000 -0.236316
      2 -0.208282 -0.236316  1.000000
2     0  1.000000  0.056222 -0.010197
      1  0.056222  1.000000 -0.140247
      2 -0.010197 -0.140247  1.000000
3     0  1.000000 -0.064615 -0.111025
      1 -0.064615  1.000000 -0.100798
      2 -0.111025 -0.100798  1.000000

生成一个DataFrame,其前几行如下所示:

corr

这显示了DataFrame列之间的相关性。请注意 索引是MultiIndex,其第一级是月,第二级是第二级 指与关联相关联的两个DataFrame列之一。

{{1}}方法忽略索引 - 它将DataFrame的两列视为数组。 因此,分组数据在时间上存在差距是没有问题的。