我有一个数据框:
df1 = pd.DataFrame(
[['2011-01-01','2011-01-03','A'], ['2011-04-01','2011-04-01','A'], ['2012-08-28','2012-08-30','B'], ['2015-04-03','2015-04-05','A'], ['2015-08-21','2015-08-21','B']],
columns=['d0', 'd1', 'event'])
Run Code Online (Sandbox Code Playgroud)
df1 = pd.DataFrame(
[['2011-01-01','2011-01-03','A'], ['2011-04-01','2011-04-01','A'], ['2012-08-28','2012-08-30','B'], ['2015-04-03','2015-04-05','A'], ['2015-08-21','2015-08-21','B']],
columns=['d0', 'd1', 'event'])
Run Code Online (Sandbox Code Playgroud)
它包含在 d0 到 d1 的指定时间间隔内发生的一些事件 A 和 B。(实际上还有更多的事件,它们是混合的,但是它们在日期上没有交集。)而且,这个间隔可以是1天(d0 = d1)。我需要从 df1 到 df2,其中每个事件的这些时间间隔都是“展开”的,即:
df2 = pd.DataFrame(
[['2011-01-01','A'], ['2011-01-02','A'], ['2011-01-03','A'], ['2011-04-01','A'], ['2012-08-28','B'], ['2012-08-29','B'], ['2012-08-30','B'], ['2015-04-03','A'], ['2015-04-04','A'], ['2015-04-05','A'], ['2015-08-21','B']],
columns=['Date', 'event'])
Run Code Online (Sandbox Code Playgroud)
d0 d1 event
0 2011-01-01 2011-01-03 A
1 2011-04-01 2011-04-01 A
2 2012-08-28 2012-08-30 B
3 2015-04-03 2015-04-05 A
4 2015-08-21 2015-08-21 B
Run Code Online (Sandbox Code Playgroud)
我尝试根据重新采样并比较 ffill = bfill 的区域来执行此操作,但无法得出任何结果。如何以最简单的方式做到这一点?