首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更好的方法来运行这个循环?

更好的方法来运行这个循环?
EN

Stack Overflow用户
提问于 2022-10-07 14:18:24
回答 1查看 25关注 0票数 0

我有以下形式的数据:

代码语言:javascript
复制
    id    rr
    2.0   4
    2.0   5 
    2.0   4
    2.0   3
    5.0   4
    5.0   2 
    5.0   4
    5.0   1
    7.0   1
    7.0   2 
    7.0   3
    7.0   2

我想为每个id计算一个特定的参数。我写了这篇文章,但这看起来并不有效,特别是因为原始数据对于每个id (436)都有8760行。

代码语言:javascript
复制
import pandas as pd 
sum_rr = pd.DataFrame(columns = {'id' ,'sum_rr2', 'sum_rr3'})

for i in id_cat.unique():
    test = data[data.id == i]
    test['sum_rr2'] = test.rr.rolling(3 , center = False).sum() - test.rr 
    test['sum_rr3'] = test.rr.rolling(4 , center = False).sum() - test.rr 
    sum_rr = sum_rr.append(test[['sum_rr3','sum_rr4','id']] , ignore_index = True)

sum_rr = sum_rr.reset_index(drop = True)
EN

回答 1

Stack Overflow用户

发布于 2022-10-07 14:21:56

在您的例子中,尝试使用groupbyrolling

代码语言:javascript
复制
data['sum_rr2'] = data.groupby('id')['rr'].rolling(3).sum().reset_index(level=0,drop=True)-data.rr
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73988571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档