我想在两个给定年份之间以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)
但此后没有任何想法。
答案 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]