我有一个数据框,包括列 Name
(名称), value
(2016年发生事件的那一周), binary
(事件发生的指示,"1"),例如:
df
Name value binary
apple 2016 W16 1
orange 2016 W17 1
melon 2016 W20 1
berry 2016 W17 1
lime 2016 W19 1
我有兴趣在此数据框中添加行,以便每个 Name
(苹果,橙等)在事件发生前的几周内在 value
列中都有一个项目 . 同样,事件发生的那一周在 df
中被声明为 value
列 . 感兴趣的时间段是2016 W16和2016 W19之间的周数,例如:
start_end_weeks
week
2016 W16
2016 W17
2016 W18
2016 W19
我的问题是我需要在2016年W16和2016年W19之间填充几周内未在 df
中表示的行 . 这就是我的意思:
df_result
Name value binary
apple 2016 W16 1
orange 2016 W16 0
orange 2016 W17 1
melon 2016 W16 0
melon 2016 W17 0
melon 2016 W18 0
melon 2016 W19 0
melon 2016 W20 1
berry 2016 W17 1
lime 2016 W19 1
...
但是由于 value
不是't a traditional date time object, I'我不知道如何让python认识到2016 W16发生在2016 W17之前,然后只在 value
中 value
中所述的周之前填充值 .
我在哪里开始遇到麻烦,所以如果有人能帮助我将 value
转换为一个很棒的日期时间对象,我可以从那里开始 . 任何其他见解赞赏 .
我发现这个堆栈溢出问题到目前为止我都是:Match rows in one Pandas dataframe to another based on three columns .
2 回答
您可以按如下方式获得有效的日期时间:
结果将是:
如果您需要转换为日期
没有改变我要使用的日期
reindex
与groupby