我有一个看起来像这样的 pandas 数据框,
id start end
0 1 2020-02-01 2020-04-01
1 2 2020-04-01 2020-04-28
我有两个附加参数,它们是日期值,例如 x 和 y。x 和 y 将始终是该月的第一天。
我想将上面的数据框扩展到下面所示的 x =“2020-01-01”和 y =“2020-06-01”,
id month status
0 1 2020-01 -1
1 1 2020-02 1
2 1 2020-03 2
3 1 2020-04 2
4 1 2020-05 -1
5 1 2020-06 -1
6 2 2020-01 -1
7 2 2020-02 -1
8 2 2020-03 -1
9 2 2020-04 1
10 2 2020-05 -1
11 2 2020-06 -1
数据框已扩展,因此对于每个 id,都会有额外的 Month_ Between(x, y) 行。并创建一个状态列并填充值,以便,
如果月份列值等于开始列的月份,则将状态填充为 1
如果月份列值大于开始列的月份但小于或等于结束列的月份,则填写为 2。
如果月份列值小于起始月份,则填写为-1。另外,如果月份列值大于结束月份,则填充状态为 -1。
我试图在 pandas 中解决这个问题而不循环。我当前的解决方案是使用循环,并且需要更长的时间来运行巨大的数据集。
有没有熊猫函数可以帮助我?
蝴蝶刀刀
相关分类