python - 部分日期的 Pandas DataFrame 相关性

标签 python pandas dataframe correlation

我有一个 Pandas 数据框,它有一个七年时间范围内的日期时间索引和 10 种不同 Assets 的价格数据。我想运行 dataframe.corr 函数来评估 Assets 之间的关系,我的问题是我想在特定月份运行 corr 函数。那么所有年份的一月有什么相关性?

根据我一直在阅读的内容,如果我按时间分组,我可能会失去正确的时间进程,这会使相关性分析变得无用。

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

最佳答案

使用 df['month'] = df.index.month 从 DatetimeIndex 中提取月份。然后按 month 分组:

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))

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

                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 的列之间的相关性。请注意 该索引是一个 MultiIndex,其第一级是月份,第二级 指的是与关联关联的两个 DataFrame 列之一。

corr 方法忽略索引——它将 DataFrame 的两列视为数组。 所以分组数据在时间上有差距是没有问题的。

关于python - 部分日期的 Pandas DataFrame 相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946763/

相关文章:

r - 查找向量的每个元素所属的数据框中的哪个区间行

python - Django OneToOne 字段的默认关系

Python/Pandas 与 NaN 数据合并问题

python - 跳转到 Python 中的代码小节?

python - 无法删除 Pandas 中的空白 + CSV 中的乱码输出

python - 用Python读取一个excel文件,在不改变样式的情况下进行修改

python - 如果其他功能在 Pandas 数据框中

python - 在 Pandas 中将一个 Excel 文件拆分为多个具有特定行数的文件

python - train_test_split上的Pandas 'Passing list-likes to .loc or [] with any missing labels is no longer supported'返回数据

python - 在 GPU 上使用 Keras 内存不足