注意:我使用新的rolling
对象而不是已弃用的rolling_cor
函数使用pandas 0.19。
我的数据框索引有不规则的时间戳。我想计算其列之间的滚动相关性。
df = pd.DataFrame({
'A': np.random.randn(3600).cumsum(),
'B': np.random.randn(3600).cumsum()
}, index=pd.date_range('2016-01-01', freq='s', periods=3600)
)
无论偏移量是什么,以下都会返回相同的结果:
offset = '1000s' # or '100s' or '10s'...
df.rolling(offset).corr().loc[:, 'A', 'B'].plot();
换句话说,offset
的值不会改变计算结果。使用这种方法我有同样的问题:
df['A'].rolling(offset).corr(df['B']).plot();
请注意,以下示例按预期工作:
df['A'].rolling(1000).corr(df['B']).plot(); # window size, not offset
df.rolling(offset).sum().plot(); # sum, not corr
现在我将重新采样并使用固定大小的窗口,但我想知道这是否是一个错误?