我有下面的df,我希望添加列“期望的结果”,这将计算连续周数的促进_类型是活跃在一个特定的商店为特定的产品代码。有什么关于下一步行动的建议吗?谢谢
| 存储码|乘积码|日期|提升型|预期结果|
| --------------|--------------|--------------|--------------|--------------|
| 1|二百二十二|2021-01-03 2021-01-03| Promo descuento| 1|
| 1|二百二十二|2021-02-28 2021-02-28 2021-02-28|普罗莫卡韦切拉|1|
| 1|二三二|2021-03-21 - 2021-03-21|促销多功能压缩机|1|
| 1|二九六|2021-01-17 2021-01-17 2021-01-17| Promo descuento| 1|
| 1|二九六|2021-01-24 2021-01-24| Promo descuento|二|
| 1|二九六|2021-01-31 - 2021 - 2021-01-31| Promo descuento|三|
| 1|二九六|2021-02-07 2021-02-07| Promo descuento|四个|
| 1|三百八十二|2021-02-07 2021-02-07| Promo descuento| 1|
| 1|六零八|2021-01- 10 2021-01-10 2021-01-10| Promo descuento| 1|
| 1|六零八|2021-01-17 2021-01-17 2021-01-17| Promo descuento|二|
| 1|六一二|2021-01-03 2021-01-03| Promo descuento| 1|
| 1|六一二|2021-01-31 - 2021 - 2021-01-31| Promo descuento| 1|
2条答案
按热度按时间3bygqnnd1#
如果我正确理解了这个问题,这应该可以解决你的问题:将pandas导入为pd
我希望这有帮助!
kxeu7u2r2#
首先,让我们将将要使用的数据复制到另一个dataframe。让我们也创建一个零列,稍后使用:
为了便于计算行之间的差异,让我们将
"promotion_type"
列转换为数字:由于您希望 * 针对每个产品 * 执行此操作,因此需要使用
groupby
。然后,我们可以diff()
this来获得组中连续行之间的差异。现在,请注意,我们只想为那些
group_diff["date"]
为7 days
且group_diff["promotion_type"]
为零的行增加df["Desired Outcome"]
的值。让我们将这些行的df_data
的zeros
列设置为1:最后,让我们再次对
df_data
进行分组,这次取所有组的累积和:请注意,这是我们需要的期望结果,除了我们需要添加一个:
这给我们留下了想要的结果: