为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯7119047 2023-05-23 14:33:41
我有一个 df 由停电组成,有几列,一个开始日期列和一个结束日期列我希望能够做什么:扫描“开始日期”列以获取最早日期扫描“完成日期”列以获取最新日期建立一个日期索引,所有日期都在这两个日期之间对于每一行,为从开始日期到完成日期的每个日期创建一行,从而消除了对两个日期列的需要所以如果我的 df 看起来如下:start date    mw outage    end date     location01/01/2000    1000         01/04/2000   merica01/01/2000    2000         01/03/2000   canadia我希望它看起来像这样date        mw outage       location01/01/2000  1000            merica01/01/2000  2000            canadia01/02/2000  1000            merica01/02/2000  2000            canadia01/03/2000  1000            merica01/03/2000  2000            canadia01/04/2000  1000            merica我想我可以使用重新索引来添加缺失的日期,但我不确定如何识别最旧/最新的,我不知道如何以这种方式创建行
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

然后我们需要创建范围日期列explode


df.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       date

0 2000-01-01      1000 2000-01-04   merica 2000-01-01

0 2000-01-01      1000 2000-01-04   merica 2000-01-02

0 2000-01-01      1000 2000-01-04   merica 2000-01-03

0 2000-01-01      1000 2000-01-04   merica 2000-01-04

1 2000-01-01      2000 2000-01-03  canadia 2000-01-01

1 2000-01-01      2000 2000-01-03  canadia 2000-01-02

1 2000-01-01      2000 2000-01-03  canadia 2000-01-03


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信