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

如何验证分组后最新metric值是否高于旧值并触发警告

DataFrame分组metric趋势验证方案

实现步骤

  • 按category、level、type维度分组
  • 每组内按date排序,区分新旧日期对应的metric值
  • 对比最新日期与旧日期的metric,若最新值未高于旧值则触发警告

代码实现

import pandas as pd
import warnings

# 构建示例数据(与给定结构一致)
df = pd.DataFrame({
    'category': ['c1', 'c1', 'c2', 'c2', 'c2', 'c2'],
    'date': ['d1', 'd2', 'd1', 'd2', 'd1', 'd2'],
    'level': ['l1', 'l1', 'l2', 'l2', 'l2', 'l2'],
    'type': ['t1', 't1', 't1', 't1', 't2', 't2'],
    'metric': [0.5, 0.4, 0.7, 0.6, 0.8, 0.9]
})

def verify_trend(group):
    # 按日期排序,确保旧日期在前
    sorted_group = group.sort_values('date')
    old_val = sorted_group['metric'].iloc[0]
    latest_val = sorted_group['metric'].iloc[-1]
    
    if latest_val <= old_val:
        # 提取分组标识
        cat, lvl, typ = sorted_group[['category', 'level', 'type']].iloc[0]
        warnings.warn(f"分组({cat}, {lvl}, {typ}):最新日期metric值({latest_val})未超过旧日期值({old_val})")
    return group

# 应用分组验证
df.groupby(['category', 'level', 'type']).apply(verify_trend)

关键说明

  • 若date为datetime类型,排序逻辑无需调整;若为自定义格式字符串,需确保排序能正确反映日期先后顺序
  • 警告信息可根据需求修改,比如添加具体日期参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:52:26