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

如何统计特定时间窗口列值出现次数并筛选近6个月价格上涨2次的商品

问题解决方法

你已经完成了价格差分计算的核心步骤,后续可以通过以下两种方式完成统计,优先推荐向量化方法,性能远高于显式循环。


方法1:Pandas向量化实现(生产环境优先选)

核心逻辑是按itemID分组后,统计相邻月份价格差大于0的记录数,无需写循环:

  1. 先补全基础预处理,避免多item场景下数据顺序错乱
import pandas as pd

# 构造示例数据集
df = pd.DataFrame({
    'date': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'July'],
    'itemID': [12]*7,
    'price': [100,100,120,120,140,140,140]
})

# 按商品分组、按月份排序后计算月度价格差
df = df.sort_values(['itemID', 'date']).reset_index(drop=True)
df['price_diff'] = df.groupby('itemID')['price'].diff()
  1. 标记上涨节点、统计次数并筛选目标商品
# 标记当月是否属于价格上涨(差值>0即为上涨)
df['is_price_rise'] = (df['price_diff'] > 0).astype(int)

# 统计每个商品的累计上涨次数
rise_stat = df.groupby('itemID')['is_price_rise'].sum().reset_index(name='rise_count')
# 筛选出近6个月上涨次数≥2的商品
target_items = rise_stat[rise_stat['rise_count'] >= 2]['itemID'].tolist()

针对你给出的示例数据,itemID=12的商品在3月、5月各有1次上涨,累计2次,会被正确筛选出来。
如果你的数据集跨度超过6个月,需要严格做滚动6个月窗口统计,可以把日期转为时间格式后用滚动窗口计算:

df['date_dt'] = pd.to_datetime(df['date'], format='%b')
df = df.set_index('date_dt')
# 计算每个商品滚动6个月窗口内的上涨次数
df['rolling_6m_rise'] = df.groupby('itemID')['is_price_rise'].rolling('6M').sum().reset_index(drop=True)
# 只要任意6个月窗口内出现过≥2次上涨的商品都纳入结果
target_items_rolling = df[df['rolling_6m_rise'] >= 2]['itemID'].unique().tolist()

方法2:带计数器的for循环实现(适配自定义复杂规则)

如果你有自定义的上涨判定规则(比如要求涨幅超过阈值、排除特殊促销调价等),可以用分组遍历+计数器的方式实现,逻辑更灵活:

target_items = []

# 按商品分组遍历
for item_id, item_data in df.groupby('itemID'):
    # 先按日期排序保证时序正确
    item_data = item_data.sort_values('date').reset_index(drop=True)
    rise_counter = 0
    # 从第二个月开始逐行和上月价格对比
    for idx in range(1, len(item_data)):
        # 可在此处追加自定义判断规则,比如涨幅>5%才算有效上涨
        if item_data.loc[idx, 'price'] > item_data.loc[idx-1, 'price']:
            rise_counter += 1
        # 若做窗口统计,可在这里判断idx对应的月份是否超出6个月范围,超出则对应扣减计数器值
    # 统计完成后判断是否符合条件
    if rise_counter >= 2:
        target_items.append(item_id)

注意:所有时序统计前必须先按itemID分组、再按时间字段排序,否则会出现不同商品价格串算、时序错乱的问题,导致统计结果错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:03:31