gpt4 book ai didi

python - Pandas 滚动窗口返回一个数组

转载 作者:太空狗 更新时间:2023-10-30 00:42:45 31 4
gpt4 key购买 nike

这是一个示例代码。

df = pd.DataFrame(np.random.randn(10, 2), columns=list('AB'))
df['C'] = df.B.rolling(window=3)

输出:

           A         B                                       C
0 -0.108897 1.877987 Rolling [window=3,center=False,axis=0]
1 -1.276055 -0.424382 Rolling [window=3,center=False,axis=0]
2 1.578561 -1.094649 Rolling [window=3,center=False,axis=0]
3 -0.443294 1.683261 Rolling [window=3,center=False,axis=0]
4 0.674124 0.281077 Rolling [window=3,center=False,axis=0]
5 0.587773 0.697557 Rolling [window=3,center=False,axis=0]
6 -0.258038 -1.230902 Rolling [window=3,center=False,axis=0]
7 -0.443269 0.647107 Rolling [window=3,center=False,axis=0]
8 0.347187 0.753585 Rolling [window=3,center=False,axis=0]
9 -0.369179 0.975155 Rolling [window=3,center=False,axis=0]

我希望我的“C”列是一个类似于 [0.1231, -1.132, 0.8766] 的数组。我尝试使用滚动应用但没有成功。

预期输出:

       A         B                 C
0 -0.108897 1.877987 []
1 -1.276055 -0.424382 []
2 1.578561 -1.094649 [-1.094649, -0.424382, 1.877987]
3 -0.443294 1.683261 [1.683261, -1.094649, -0.424382]
4 0.674124 0.281077 [0.281077, 1.683261, -1.094649]
5 0.587773 0.697557 [0.697557, 0.281077, 1.683261]
6 -0.258038 -1.230902 [-1.230902, 0.697557, 0.281077]
7 -0.443269 0.647107 [0.647107, -1.230902, 0.697557]
8 0.347187 0.753585 [0.753585, 0.647107, -1.230902]
9 -0.369179 0.975155 [0.975155, 0.753585, 0.647107]

最佳答案

因为 pandas 1.1 滚动对象是可迭代的。

对于列表列表:

df['C'] = [window.to_list() for window in df.B.rolling(window=3)]

对于一系列系列的做法:

df['C'] = pd.Series(df.B.rolling(window=3))

另请查看 rolling function参数。

关于python - Pandas 滚动窗口返回一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47482009/

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