当我使用group by函数时,尝试在Pandas中实现'rolling'函数(即rolling_std()和rolling_corr())时,我遇到了问题。我已经尝试使用以下公式,但是我不断收到“ValueError:cannot reindex from a duplicate axis”的错误信息。
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
谢谢