如何在今天到大熊猫的今天生成时间序列列?

时间:2017-09-29 21:25:53

标签: pandas time-series

如何在pandas中从今天到接下来的600天生成时间序列列?

我是一名新的熊猫学习者。我可以按如下方式生成一个新列:

dates = pd.date_range('2010-01-01', '2011-8-23', freq='D')

输出:

DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01-04',
               '2010-01-05', '2010-01-06', '2010-01-07', '2010-01-08',
               '2010-01-09', '2010-01-10',
               ...
               '2011-08-14', '2011-08-15', '2011-08-16', '2011-08-17',
               '2011-08-18', '2011-08-19', '2011-08-20', '2011-08-21',
               '2011-08-22', '2011-08-23'],
              dtype='datetime64[ns]', length=600, freq='D')

我的问题是:如果我们只知道开始日期和600天的时间段,我们该怎么办? 我们不知道结束日期。如何修改代码?

另一个跟进问题,如何将开始日期设置为当前日期或昨天的日期?

2 个答案:

答案 0 :(得分:2)

只需将期限更改为600,就可以获得结果

pd.date_range(start='2010-01-01', periods=5, freq='D')
Out[335]: 
DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01-04',
               '2010-01-05'],
              dtype='datetime64[ns]', freq='D')

获取今天的日期

pd.to_datetime('today')

Out[338]: Timestamp('2017-09-29 00:00:00')

答案 1 :(得分:1)

首先,导入核心包datetime

import datetime

然后,您可以使用timedelta()方法

实例化日期时间对象并添加600天
start_date = "2010-01-01"
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d")

end_date = start_date + datetime.timedelta(days=600)

现在要回到字符串,我们可以使用strftime(),如:

end_date = end_date.strftime("%Y-%m-%d")
> '2011-08-24'