我有一个数据集,其中包含MMMM-YY格式的日期索引、促销的开始日期、折扣值和促销的结束日期。
具体如下:
events = pd.DataFrame({'yyyyww': ['2022-01','2022-02','2022-03', '2022-04','2022-05','2022-06','2022-07','2022-08','2022-09','2022-10'],
'promo_start': ['2022-01','Nan','2022-03','Nan','2022-05','2022-06','Nan','Nan','2022-09','Nan'],
'disc': ['0.1','Nan',0.2,'Nan',0.2,0.4,'Nan','Nan',0.5,'NaN'],
'promo_end': ['Nan', '2022-02','Nan','2022-04','2022-05','Nan','2022-07','Nan','Nan','2022-10']})
字符串
x1c 0d1x的数据
我尝试了各种组合groupby
和ffill
操作,但无法产生所需的输出。
对于每一周在YYYY-MM
我想能够评估促销活动是否通过做类似于铅填充操作的东西,使输出是一个布尔标志和折扣金额的dataphram,如下所示;
desired_output = pd.DataFrame({'yyyyww': ['2022-01','2022-02','2022-03', '2022-04','2022-05','2022-06','2022-07','2022-08','2022-09','2022-10'],
'promo_start': ['2022-01','Nan','2022-03','Nan','2022-05','2022-06','Nan','Nan','2022-09','Nan'],
'disc': ['0.1','Nan',0.2,'Nan',0.2,0.4,'Nan','Nan',0.5,'NaN'],
'promo_end': ['Nan', '2022-02','Nan','2022-04','2022-05','Nan','2022-07','Nan','Nan','2022-10'],
'promo_active': [True,True,True,True,True,True,True,False,True,True],
'promo_disc': [0.1,0.1,0.2,0.2,0.2,0.4,0.4,0,0.5,0.5]})
型
的
2条答案
按热度按时间btxsgosb1#
向前填充
promo_start
,然后按促销开始分组promo_end
,然后向后填充值,现在检查空值以确定促销是否处于活动状态个字符
js4nwp542#
这是一个比舒伯姆更长的方法,但也不那么抽象:
字符串