【问题标题】:How can count how many times in specific time window value of column occured?如何计算列的特定时间窗口值发生了多少次?
【发布时间】:2022-06-21 22:43:58
【问题描述】:

我有时间序列数据框,例如 日期:一月,二月,三月,四月,五月,六月,七月;商品ID:12,12,12,12,12,12,12 价格:100,100,120,120,140,​​140,​​140

我必须检查过去 6 个月中哪件商品的价格上涨了两倍。 首先,我已经改变了列价格,这样我就可以计算当前月份的价格和上一个月份的价格之间的差异,但是有人可以帮助我如何应用一些函数或带计数器的 for 循环吗?

【问题讨论】:

    标签: pandas for-loop


    【解决方案1】:

    假设数据按日期排序,您可以按 itemID 分组,检查最后 6 个项目中是否有 2 次或多次出现肯定的diff

    df.groupby('itemID')['price'].apply(lambda g: g.diff().tail(6).gt(0).sum()>1)
    

    输出:

    itemID
    12    True
    Name: price, dtype: bool
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多