【问题标题】:Python/Pandas time series correlation on values vs differencesPython/Pandas 时间序列值和差异的相关性
【发布时间】:2021-02-25 19:54:53
【问题描述】:

我熟悉 Pandas Series corr 函数来计算两个 Series 之间的相关性,例如:

import pandas as pd
import numpy as np

A = pd.Series(np.random.randint(1,101,50))
B = pd.Series(np.random.randint(1,101,50))

A.corr(B)

这将计算两个系列的 VALUES 的相关性,但如果我使用的是时间序列,我可能想要计算变化的相关性(绝对变化或百分比变化以及超过 1d、1w、1m、等)。

一些统计软件可以很容易地做到这一点,当然我可以创建一个包含每日、每周变化的系列,然后运行相同的函数,但我想知道有没有更 Pythonic 的方法来做到这一点?

【问题讨论】:

    标签: python pandas numpy statistics correlation


    【解决方案1】:

    我想通过 pandas 更 Pythonic 的方式是使用 df.pct_change()

    假设 A 和 B 是时间序列:

    A.pct_change().corr(B.pct_change())
    

    【讨论】:

    • 这太好了,有没有绝对变化的?我在 Pandas 文档中没有看到它。
    • 做绝对变化,可以先计算差值,再转成绝对值:df.diff().abs()
    • 文档:pd.diff()pd.abs()
    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2016-09-08
    • 2020-11-15
    • 2021-06-08
    相关资源
    最近更新 更多