【发布时间】:2020-09-27 14:34:04
【问题描述】:
我有一个使用 pandas 的函数 date_range 创建的日期列表。在该列表中,日期从 01 January 2019 00:00:00 到 31 December 2019 00:00:00。现在每个时间间隔有15分钟的间隔,所以一天总共会有96个15分钟的块((24*60)/15)。所以列表会是这样的:
modelStartDate = "01/01/2019"
modelEndDate = "31/12/2019"
interval = 15
dateTime = pd.date_range(start=modelStartDate, end=modelEndDate, freq=str(interval) + 'min')
print(dateTime)
输出:
DatetimeIndex(['2019-01-01 00:00:00', '2019-01-01 00:15:00',
'2019-01-01 00:30:00', '2019-01-01 00:45:00',
'2019-01-01 01:00:00', '2019-01-01 01:15:00',
'2019-01-01 01:30:00', '2019-01-01 01:45:00',
'2019-01-01 02:00:00', '2019-01-01 02:15:00',
...
'2019-12-30 21:45:00', '2019-12-30 22:00:00',
'2019-12-30 22:15:00', '2019-12-30 22:30:00',
'2019-12-30 22:45:00', '2019-12-30 23:00:00',
'2019-12-30 23:15:00', '2019-12-30 23:30:00',
'2019-12-30 23:45:00', '2019-12-31 00:00:00'],
dtype='datetime64[ns]', length=34945, freq='15T')
所以我正在做一些需要一些计数器的计算,我想做的是我想在每个新的一天重置计数器。所以做这个任务我有两种方法:首先,我可以简单地将列表分成 96 个块,并在每 96 个块后重置计数器;其次,我想查看这个列表,看看实际什么时候是新的日子并重置柜台只有当它发现有新的一天。 第一种方法:
modelStartDate = "01/01/2019"
modelEndDate = "31/12/2019"
interval = 15
dateTime = pd.date_range(start=modelStartDate, end=modelEndDate, freq=str(interval) + 'min')
for i in range(len(dateTime)):
if i % 96 == 0:
print("new date at ", i)
第二种方法: 我不知道该怎么做。所以有人可以帮忙。在所需的输出中,我不想要任何特别的东西,只是可以简单地说那是新一天的新日期。所以在每第 96 个块输出之后会是这样的:
new date: 02/01/2019 00:00:00
new date: 03/ 01/2019 00:00:00
and so on
【问题讨论】:
标签: python pandas list datetime