gpt4 book ai didi

Python/Pandas For 循环时间序列

转载 作者:行者123 更新时间:2023-12-02 02:35:24 25 4
gpt4 key购买 nike

我正在处理面板时间序列数据,并正在努力创建一个快速 for 循环,总而言之,当前 i 处的过去 50 个数字。数据大约有 600k 行,并且开始变动大约 30k。有没有办法使用 pandas 或 Numpy 在短时间内完成相同的任务?

change列的类型为float,保留4位小数。

Index     Change
0 0.0410
1 0.0000
2 0.1201
... ...
74327 0.0000
74328 0.0231
74329 0.0109
74330 0.0462
SEQ_LEN = 50
for i in range(SEQ_LEN, len(df)):
df.at[i, 'Change_Sum'] = sum(df['Change'][i-SEQ_LEN:i])

任何帮助将不胜感激!谢谢!

最佳答案

我尝试了 600k 行,平均时间是20.9 毫秒 ± 1.35 毫秒

这将返回一个系列,其中包含 df 中最后 50 次更改的滚动总和:

 df['Change'].rolling(50).sum()

您可以将其添加到新列,如下所示:

df['change50'] = df['Change'].rolling(50).sum()

关于Python/Pandas For 循环时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64403208/

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