【发布时间】:2022-06-21 22:43:58
【问题描述】:
我有时间序列数据框,例如 日期:一月,二月,三月,四月,五月,六月,七月;商品ID:12,12,12,12,12,12,12 价格:100,100,120,120,140,140,140
我必须检查过去 6 个月中哪件商品的价格上涨了两倍。 首先,我已经改变了列价格,这样我就可以计算当前月份的价格和上一个月份的价格之间的差异,但是有人可以帮助我如何应用一些函数或带计数器的 for 循环吗?
【问题讨论】:
我有时间序列数据框,例如 日期:一月,二月,三月,四月,五月,六月,七月;商品ID:12,12,12,12,12,12,12 价格:100,100,120,120,140,140,140
我必须检查过去 6 个月中哪件商品的价格上涨了两倍。 首先,我已经改变了列价格,这样我就可以计算当前月份的价格和上一个月份的价格之间的差异,但是有人可以帮助我如何应用一些函数或带计数器的 for 循环吗?
【问题讨论】:
假设数据按日期排序,您可以按 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
【讨论】: