我想计算 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 ,我想计算每列( RF , PC 等)的滞后一个的自相关。
为了计算自相关,我为开始和结束数据相差一年的每一列提取了两个时间序列,然后使用 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 许可协议
你应该使用:
df[['C']]
表示只有一列的数据框,而df['C']
是包含 C 列中的值的系列。