如何抵消熊猫皮尔森与DateTime索引相关



我正在尝试获得前一周输入到下周输出的相关值。

为了这个示例,我已经将其设置为每个星期的输入,即下周的输出,df.corr()应该给出1.000000结果。

我的原始数据看起来像这样:

Date      Input     Output
1/1/2010    73         73
1/7/2010     2         73
1/13/2010    3          2
1/19/2010    4          3

完整的示例数据在此处上传:https://drive.google.com/open?id=0b4xdnv0lfzi1mzruoujkcuy4ajq

到目前为止,这是我的代码:

import pandas as pd
df = pd.read_csv('pearson.csv')
df['Date'] = pd.to_datetime(df['Date'], errors = 'coerce')
df = df.set_index(pd.DatetimeIndex(df['Date']))
df = df[['Input', 'Output']]
x = df.corr(method = 'pearson', min_periods=1)
print(x)

,作为新手,这是我卡住的地方。我看不到功能中内置的shift选项,也不知道该怎么做。

任何帮助都将受到赞赏。

谢谢,我

如果在数据框架上执行.corr,它将产生相关矩阵。

在您的情况下,您只希望两个时间序列之间的相关性,并且可以通过以下代码实现这一目标。请注意,时间序列的.corr方法需要参数other,这是计算与。

的相关性的系列
df["Input"].corr(df["Output"].shift(-1), method = 'pearson', min_periods = 1) #1

相反,如果您需要相关矩阵,则应首先创建一个具有移动输出的数据框架,然后计算相关性:

temp_df = pd.concat([df['Input'], df['Output'].shift(-1)], axis = 1).dropna()
temp_df.corr(method = 'pearson', min_periods = 1)   
#        Input  Output
#Input     1.0     1.0
#Output    1.0     1.0

相关内容

  • 没有找到相关文章

最新更新