首页 > 解决方案 > 在熊猫中,有没有办法在两个日期之间创建时间跨度?

问题描述

问这个问题相当令人困惑,因为我知道有些日期范围会在两个日期之间创建日期(这不是我想要的)。

相反,我正在寻找的实际上是一个开始结束。我计划制作一个索引格式为YYYY-MM-DD - YYYY-MM-DD.

因此,第一行的索引为2000-01-01 - 2001-01-01,第二行的索引为2000-01-02 - 2001-01-02,第三行的索引为2000-01-03 - 2001-01-03,等等。有没有办法做到这一点(或类似的事情)?我正在考虑创建一个将两个 datetime.date 对象配对在一起的类,但我很犹豫,因为我确信这样做有更充实的方式。

标签: pythonpython-3.xpandas

解决方案


抱歉,如果我没有正确理解您的问题,

from datetime import datetime, timedelta 

def datetime_range(dt_1=None, dt_2=None, span=None): 
    for i in range(span + 1): 
        yield dt_1 + timedelta(days=i), dt_2 + timedelta(days=i)

dt_1, dt_2 = datetime(2014, 1, 1), datetime(2015, 1, 1)

for date_1,date_2 in datetime_range(dt_1, dt_2, 10):
    print(date_1, date_2) #.date() if needed..

# o/p's
2014-01-01 00:00:00 2015-01-01 00:00:00
2014-01-02 00:00:00 2015-01-02 00:00:00
2014-01-03 00:00:00 2015-01-03 00:00:00
2014-01-04 00:00:00 2015-01-04 00:00:00
2014-01-05 00:00:00 2015-01-05 00:00:00
2014-01-06 00:00:00 2015-01-06 00:00:00
...

推荐阅读