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

基于半小时时间序列,计算每日最后state=1后3小时内value的降幅

解决方案:按日计算指定时段内的value下降幅度

针对你的半小时粒度时间序列数据,我们可以用Python的pandas库高效处理,具体步骤如下:

1. 数据预处理

先读取数据并将date列转为datetime类型,设置为索引以方便时间操作:

import pandas as pd

# 读取数据(若数据是csv格式,直接读取;也可直接构造DataFrame)
df = pd.read_csv('your_data.csv', parse_dates=['date'], index_col='date')
# 确保数据按时间顺序排列
df = df.sort_index()

2. 按日期分组计算下降幅度

按日期分组后,对每组执行以下操作:

  • 筛选当日所有state=1的记录,定位最后一次出现的时刻
  • 提取该时刻之后3小时内的value数据
  • 计算绝对下降幅度和相对下降幅度

完整实现代码:

def calculate_drop(group):
    # 筛选当日state=1的记录
    state_1_records = group[group['state'] == 1]
    if state_1_records.empty:
        # 当日无state=1的情况,返回空值
        return pd.Series([None, None], index=['drop_abs', 'drop_pct'])
    
    # 获取最后一次state=1的时刻和对应value
    last_state_1_time = state_1_records.index[-1]
    last_state_1_value = state_1_records['value'].iloc[-1]
    
    # 定义3小时后的时间节点
    end_time = last_state_1_time + pd.Timedelta(hours=3)
    # 提取该时段内的所有value数据
    period_values = group.loc[last_state_1_time:end_time, 'value']
    
    if len(period_values) <= 1:
        # 3小时内无后续数据,返回空值
        return pd.Series([None, None], index=['drop_abs', 'drop_pct'])
    
    # 计算下降幅度
    min_value = period_values.min()
    drop_abs = last_state_1_value - min_value  # 绝对下降幅度
    drop_pct = (drop_abs / last_state_1_value) * 100  # 相对下降百分比
    
    return pd.Series([drop_abs, drop_pct], index=['drop_abs', 'drop_pct'])

# 按日期分组应用计算逻辑
daily_result = df.groupby(df.index.date).apply(calculate_drop)
# 重置索引,将日期转为列
daily_result = daily_result.reset_index().rename(columns={'index': 'date'})

print(daily_result)

代码说明

  • 空值处理:如果当日没有state=1的记录,或最后一次state=1后3小时内无数据,返回NaN避免报错
  • 下降幅度定义:
    • 绝对下降幅度:最后一次state=1时的value减去后续3小时内的最小value
    • 相对下降幅度:绝对下降幅度占初始value的百分比,用于直观展示下降比例
  • 时间范围:last_state_1_time:end_time会包含起始时刻到结束时刻的所有半小时粒度数据,匹配你的序列间隔

示例输出(对应你提供的2017-01-10数据)

假设当日最后一次state=1的时刻是2017-01-10 21:30,对应value为23,3小时内的value包括23、20、18、17、16,最小value是16,输出结果为:

date  drop_abs   drop_pct
0  2017-01-10       7.0  30.434783

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:39:21