将重叠的日期范围拆分为其组成值

时间:2019-05-29 13:05:08

标签: python-3.x pandas

我有产品的折扣数据。数据具有开始日期,结束日期和折扣值。这些日期也有重叠部分,我希望通过优先推广后续促销来进行拆分。开始日期和结束日期是日期。在示例中,我将其表示为数字。

Lambda.call

预期产量


input_df = pd.DataFrame({'item':['a']*7,
                         'start':[1, 5, 5, 14, 16, 21, 26],
                         'end':[2, 10, 13, 20, 20, 30, 35],
                         'discount':[0.05, 0.06, 0.07, 0.05, 0.04, 0.09, 0.10]})

| item | start_date | end_date | discount |
-------------------------------------------
|   a  |      1     |     2    |    0.05  |
|   a  |      5     |    10    |    0.06  |
|   a  |      5     |    13    |    0.07  |
|   a  |     14     |    20    |    0.05  |
|   a  |     16     |    20    |    0.04  |
|   a  |     21     |    30    |    0.09  |
|   a  |     26     |    35    |    0.10  |
-------------------------------------------

这是我尝试的代码

| item | start_date | end_date | discount |
-------------------------------------------
|   a  |      1     |     2    |    0.05  |
|   a  |      5     |    13    |    0.07  |<-- 5-13 promo is given preferance
|   a  |     14     |    15    |    0.05  |
|   a  |     16     |    20    |    0.04  |<-- 16-20 promo is given preferance
|   a  |     21     |    25    |    0.09  |
|   a  |     26     |    35    |    0.10  |<-- 26-35 promo is given preferance
-------------------------------------------

最终目标是获取一段时间内折扣的加权平均值。有没有更优雅的方式做到这一点。预先感谢。

0 个答案:

没有答案