基于两个日期列创建多个 df 行

我有一个 df 由停电组成,有几列,一个开始日期列和一个结束日期列

我希望能够做什么:

  1. 扫描“开始日期”列以获取最早日期

  2. 扫描“完成日期”列以获取最新日期

  3. 建立一个日期索引,所有日期都在这两个日期之间

  4. 对于每一行,为从开始日期到完成日期的每个日期创建一行,从而消除了对两个日期列的需要

所以如果我的 df 看起来如下:

start date    mw outage    end date     location

01/01/2000    1000         01/04/2000   merica

01/01/2000    2000         01/03/2000   canadia

我希望它看起来像这样


date        mw outage       location

01/01/2000  1000            merica

01/01/2000  2000            canadia

01/02/2000  1000            merica

01/02/2000  2000            canadia

01/03/2000  1000            merica

01/03/2000  2000            canadia

01/04/2000  1000            merica

我想我可以使用重新索引来添加缺失的日期,但我不确定如何识别最旧/最新的,我不知道如何以这种方式创建行


幕布斯7119047
浏览 99回答 1
1回答

森栏

然后我们需要创建范围日期列explodedf.startdate=pd.to_datetime(df.startdate)df.enddate=pd.to_datetime(df.enddate)df['date']=[pd.date_range(x, y ) for x , y in zip(df.startdate, df.enddate)]df=df.explode('date')Out[169]:    startdate  mwoutage    enddate location       date0 2000-01-01      1000 2000-01-04   merica 2000-01-010 2000-01-01      1000 2000-01-04   merica 2000-01-020 2000-01-01      1000 2000-01-04   merica 2000-01-030 2000-01-01      1000 2000-01-04   merica 2000-01-041 2000-01-01      2000 2000-01-03  canadia 2000-01-011 2000-01-01      2000 2000-01-03  canadia 2000-01-021 2000-01-01      2000 2000-01-03  canadia 2000-01-03
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python