gpt4 book ai didi

python - 带有 Groupby 的 Pandas 滚动函数

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:53 29 4
gpt4 key购买 nike

在使用 group by 函数时,我在尝试在 Pandas 中实现“滚动”函数(即 rolling_std() 和 rolling_corr())时遇到问题。我已尝试使用以下公式,但我不断收到“ValueError:无法从重复轴重新编制索引”。

df 是我的数据框:

df.groupby(level='ID')['Val1'].apply(lambda x: pd.rolling_std(x,30))

我有什么:

ID  Date    Val1    Val2
A 1-Jan 45 22
A 2-Jan 15 66
A 3-Jan 55 13
B 1-Jan 41 12
B 2-Jan 87 45
B 3-Jan 82 66
C 1-Jan 33 34
C 2-Jan 15 67
C 3-Jan 46 22

我需要什么:

ID  Date    Val1    Val2    Rolling_Corr    Rolling_Std (Val1)
A 1-Jan 45 22
A 2-Jan 15 66 0.1 1.2
A 3-Jan 55 13 0.16 2.5
B 1-Jan 41 12
B 2-Jan 87 45 0.15 2.8
B 3-Jan 82 66 0.05 1.1
C 1-Jan 33 34
C 2-Jan 15 67 0.09 1.5
C 3-Jan 46 22 0.11 2.4

谢谢

最佳答案

在较新版本的 pandas 中,rolling 的语法发生了变化,例如,从 rolling_std()rolling().std()groupby 结合使用效果很好:

df.groupby('ID').rolling(2).std()

ID Date Val1 Val2
ID
A 0 A 1-Jan NaN NaN
1 A 2-Jan 21.213203 31.112698
2 A 3-Jan 28.284271 37.476659
B 3 B 1-Jan NaN NaN
4 B 2-Jan 32.526912 23.334524
5 B 3-Jan 3.535534 14.849242
C 6 C 1-Jan NaN NaN
7 C 2-Jan 12.727922 23.334524
8 C 3-Jan 21.920310 31.819805

或者查看下面的 corr,它类似但由于 corr 的详细输出而稍微复杂一些:

Rolling Correlation with Groupby in Pandas

关于python - 带有 Groupby 的 Pandas 滚动函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29010597/

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