首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有差分函数的群

具有差分函数的群
EN

Stack Overflow用户
提问于 2022-08-10 08:21:00
回答 1查看 59关注 0票数 1

我有一个diff函数的groupby,但是我想为心率添加一个额外的平均列,我如何才能做到最好的方法呢?

这是密码

代码语言:javascript
复制
data= pd.DataFrame(
    [[Timestamp('2022-08-05 10:11:04'), 140, 120],
    [Timestamp('2022-08-05 10:11:05'), 160, 155],
    [Timestamp('2022-08-05 10:11:06'), 230, 156],
    [Timestamp('2022-08-05 10:11:07'), 230, 155],
    [Timestamp('2022-08-05 10:11:08'), 230, 160],
    [Timestamp('2022-08-05 10:11:09'), 140, 130],
    [Timestamp('2022-08-05 10:11:10'), 140, 131],
    [Timestamp('2022-08-05 10:11:11'), 230, 170]],
    columns=['timestamp', 'power', 'heart rate'])

m = data['power'].gt(200) #fill in power value
gb = (-data['timestamp'].diff(-1))[m].groupby([(~m).cumsum()).sum()
gb= gb.groupby((~m).cumsum()).sum()
gb

我应该在哪加一段代码来计算平均心率?

输出将是在高功率区的秒数,然后我想增加这段时间内的平均心率。像这样

代码语言:javascript
复制
gb = pd.DataFrame(
    [[Timestamp('00:00:04'), 210, 145],
    [Timestamp('00:00:15'), 250, 155],
    [Timestamp('00:01:00'), 230, 180],
   
    columns=['time at high intensity', ' avg power', ' avg heart rate'])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-10 08:29:44

您可以根据差异创建助手列,然后根据它进行聚合,并在GroupBy.agg中使用命名聚合中的另一列。

代码语言:javascript
复制
m = data['power'].gt(200) #fill in power value
gb = (data.assign(new=-data['timestamp'].diff(-1))[m]
          .groupby((~m).cumsum())
          .agg(time_at_high_intensity=('new','sum'),
               avg_power=('power','mean'), 
               avg_heart_rate=('heart rate','mean')))
                                               
print (gb)
      time_at_high_intensity  avg_power  avg_heart_rate
power                                                  
2            0 days 00:00:03        230             157
4            0 days 00:00:00        230             170
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73302998

复制
相关文章

相似问题

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