小编Ант*_*тон的帖子

如何“展开”数据框中的时间间隔?

我有一个数据框:

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 的区域来执行此操作,但无法得出任何结果。如何以最简单的方式做到这一点?

python pandas

8
推荐指数
3
解决办法
364
查看次数

标签 统计

pandas ×1

python ×1