如何在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天的时间段,我们该怎么办? 我们不知道结束日期。如何修改代码?
另一个跟进问题,如何将开始日期设置为当前日期或昨天的日期?
答案 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()
方法
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'