生成未来年份特定格式的日期时间

时间:2019-12-09 16:55:23

标签: python datetime sklearn-pandas

我想在两个给定年份之间以3小时的间隔生成一系列连续的年份。例如,以下格式year Month Day hour 1992 1 1 0 1992 1 1 3

如何以上述格式生成未来15年的时间序列?

到目前为止,我已经编写了代码

import datetime
start = datetime.datetime(2008, 8, 15, 0, 0, 0)
end = datetime.datetime(2008, 8, 22, 0, 0, 0)

delta = end - start

for i in range(delta.days + 1):
    print start + datetime.timedelta(days=i)

但此后没有任何想法。

1 个答案:

答案 0 :(得分:1)

由于您在标签中加入了pandas,请允许我为pandas提供解决方案。请原谅随机日期。

import pandas as pd

pd.date_range(start='2008-8-15', end='2010-8-15', freq='3h')[:10]
Out[89]: 
DatetimeIndex(['2008-08-15 00:00:00', '2008-08-15 03:00:00',
               '2008-08-15 06:00:00', '2008-08-15 09:00:00',
               '2008-08-15 12:00:00', '2008-08-15 15:00:00',
               '2008-08-15 18:00:00', '2008-08-15 21:00:00',
               '2008-08-16 00:00:00', '2008-08-16 03:00:00'],
              dtype='datetime64[ns]', freq='3H')

关于您的示例:

import pandas as pd

dates = pd.date_range(start='2008-8-15', end='2010-8-15', freq='3h')

pd.DataFrame([dates.year, dates.month, dates.day, dates.hour], index=['year',
                                       'month', 'day', 'hour']).T
Out[98]: 
      year  month  day  hour
0     2008      8   15     0
1     2008      8   15     3
2     2008      8   15     6
3     2008      8   15     9
4     2008      8   15    12
    ...    ...  ...   ...
5836  2010      8   14    12
5837  2010      8   14    15
5838  2010      8   14    18
5839  2010      8   14    21
5840  2010      8   15     0
[5841 rows x 4 columns]