计算 Pandas 中每列数据的自相关

Calculating autocorrelation for each column of data in Pandas

我想为我的数据的每一列计算 pandas 中的一阶自相关。

我希望以下每个代码都能给出相同的结果,但结果并不相同。

我应该使用哪一个?

df[df.columns.to_list()].apply(lambda x: x.corr(x.shift()))

df[df.columns.to_list()].apply(lambda x: x.autocorr)

第二个应该是 df[df.columns.to_list()].apply(lambda x: x.autocorr()) 因为你需要内括号来调用 autocorr 函数。

这些片段应该给出完全相同的结果,因为 autocorr 的实现只有一行代码:self.corr(self.shift(lag)) 与您的第一个片段相同。

如果这仍然无效,请通过可重现的示例分享您的数据。

作为次要说明 - 使用 df[df.columns.to_list()] 没有做任何特别的事情,因为您没有创建数据的子集,所以您可以简单地做 df.apply 并跳过 df[df.columns.to_list()]