回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个使用pandas的函数<code>date_range</code>创建的日期列表。在该列表中,有从<code>01 January 2019 00:00:00</code>到<code>31 December 2019 00:00:00</code>的日期。现在每个时间间隔有15分钟的间隔,因此一天中总共有96个15分钟的区块((24*60)/15)。因此,列表如下所示:</p>
<pre><code>modelStartDate = "01/01/2019"
modelEndDate = "31/12/2019"
interval = 15
dateTime = pd.date_range(start=modelStartDate, end=modelEndDate, freq=str(interval) + 'min')
print(dateTime)
</code></pre>
<p>输出:</p>
<pre><code>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')
</code></pre>
<p>所以我在做一些需要一些计数器的计算,我想做的是在每一天重新设置计数器。所以做这个任务我有两种方法:第一,我可以简单地把列表分成96个块,然后在每96个块之后重置计数器;第二,我想浏览这个列表,看看什么时候是新的一天,只有当发现有新的一天时才重置计数器。
第一种方法:</p>
<pre><code>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)
</code></pre>
<p>第二种方法:
我不知道该怎么做。有人能帮忙吗。在所需的输出中,我不需要任何特别的东西,只需简单地告诉您这是新的一天中的新日期。因此,在每个第96个块之后,输出将如下所示:</p>
<pre><code>new date: 02/01/2019 00:00:00
new date: 03/ 01/2019 00:00:00
and so on
</code></pre>