gpt4 book ai didi

python - Pandas "cumulative"滚动_corr

转载 作者:行者123 更新时间:2023-12-01 03:25:55 26 4
gpt4 key购买 nike

是否有内置的 pandas 方法来查找两个 pandas 系列之间的累积相关性?

它应该做的是有效地修复 pandas.rolling_corr(data, window) 中窗口的左侧,以便窗口的宽度增加,最终窗口包含所有数据点。

最佳答案

这是一种方法,在索引上map并应用corr来增加系列的大小。

In [116]: df.index.map(lambda x: df[col1].corr(df.loc[:x, col2]))

详情

In [112]: df = pd.DataFrame(pd.np.random.rand(10,2))

In [113]: df
Out[113]:
0 1
0 0.094958 0.891910
1 0.482616 0.551912
2 0.877540 0.573768
3 0.839921 0.328452
4 0.334714 0.908346
5 0.530518 0.837590
6 0.285152 0.126937
7 0.386568 0.474815
8 0.279807 0.939694
9 0.741882 0.135982

In [114]: df['roll_corr'] = df.index.map(lambda x: df[0].corr(df.loc[:x, 1]))

In [115]: df
Out[115]:
0 1 roll_corr
0 0.094958 0.891910 NaN
1 0.482616 0.551912 -1.000000
2 0.877540 0.573768 -0.832929
3 0.839921 0.328452 -0.848385
4 0.334714 0.908346 -0.839698
5 0.530518 0.837590 -0.791736
6 0.285152 0.126937 -0.312806
7 0.386568 0.474815 -0.283357
8 0.279807 0.939694 -0.354385
9 0.741882 0.135982 -0.459907

验证

In [121]: df.corr()
Out[121]:
0 1
0 1.000000 -0.459907
1 -0.459907 1.000000

In [122]: df[:5].corr()
Out[122]:
0 1
0 1.000000 -0.839698
1 -0.839698 1.000000

关于python - Pandas "cumulative"滚动_corr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41406339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com