计算 Pandas DataFrame 沿每一列的自相关

新手上路,请多包涵

我想计算 Pandas DataFrame 列中滞后长度之一的自相关系数。我的数据片段是:

             RF        PC         C         D        PN        DN         P
year
1890       NaN       NaN       NaN       NaN       NaN       NaN       NaN
1891 -0.028470 -0.052632  0.042254  0.081818 -0.045541  0.047619 -0.016974
1892 -0.249084  0.000000  0.027027  0.067227  0.099404  0.045455  0.122337
1893  0.653659  0.000000  0.000000  0.039370 -0.135624  0.043478 -0.142062

沿着 year ,我想计算每列( RFPC 等)的滞后一个的自相关。

为了计算自相关,我为开始和结束数据相差一年的每一列提取了两个时间序列,然后使用 numpy.corrcoef 计算了相关系数。

例如,我写道:

numpy.corrcoef(data[['C']][1:-1],data[['C']][2:])

(整个 DataFrame 称为 data )。

然而,该命令不幸返回:

 array([[ nan,  nan,  nan, ...,  nan,  nan,  nan],
       [ nan,  nan,  nan, ...,  nan,  nan,  nan],
       [ nan,  nan,  nan, ...,  nan,  nan,  nan],
       ...,
       [ nan,  nan,  nan, ...,  nan,  nan,  nan],
       [ nan,  nan,  nan, ...,  nan,  nan,  nan],
       [ nan,  nan,  nan, ...,  nan,  nan,  nan]])

有人可以建议我如何计算自相关吗?

原文由 fabian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 603
2 个回答

你应该使用:

 numpy.corrcoef(df['C'][1:-1], df['C'][2:])

df[['C']] 表示只有一列的数据框,而 df['C'] 是包含 C 列中的值的系列。

原文由 joaquin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题