You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Power值的运动员间歇训练高功率区间时长统计技术问询

运动员间歇训练数据统计:高功率时长与间歇次数计算

需求:基于Power值自动统计训练中的间歇训练次数,并计算Power超过200瓦的高强度时段总时长。

示例数据集:

import pandas as pd
from pandas import Timestamp

df = 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'])

解决方案步骤

  1. 确保时间戳格式正确
    先确认timestamp列为datetime类型(若原始数据格式不符):
df['timestamp'] = pd.to_datetime(df['timestamp'])
  1. 标记高功率时段
    新增一列标记当前记录是否属于高功率(>200瓦):
df['high_power'] = df['power'] > 200
  1. 识别连续的高功率区间
    通过状态变化分组,区分不同的连续高功率间歇段:
# 标记每行与上一行的功率状态是否变化
df['state_change'] = df['high_power'].ne(df['high_power'].shift())
# 为每个连续的状态区间分配唯一ID
df['interval_id'] = df['state_change'].cumsum()
  1. 计算高功率总时长与间歇次数
    分组统计每个高功率区间的起止时间和时长,再汇总结果:
# 筛选高功率区间并计算每个区间的时长
high_power_stats = df[df['high_power']].groupby('interval_id').agg(
    start=('timestamp', 'min'),
    end=('timestamp', 'max'),
    duration=('timestamp', lambda x: x.max() - x.min())
)

# 总高功率时长
total_duration = high_power_stats['duration'].sum()
# 间歇训练次数(即高功率区间的数量)
interval_count = len(high_power_stats)

结果说明

针对示例数据:

  • 间歇训练次数为2次
  • 高功率总时长为0 days 00:00:03(对应连续3秒的高功率段加上1秒的单独高功率记录,总时长3秒)

内容的提问来源于stack exchange,提问作者pepijn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:39:06