<p>您可以使用DatetimeIndex的<code>dayofyear</code>方法。每当它改变,你就有了新的一天。例:</p>
<pre><code>import pandas as pd
modelStartDate, modelEndDate = "01/01/2019", "31/12/2019"
interval = 15
dateTime = pd.date_range(start=modelStartDate, end=modelEndDate, freq=str(interval) + 'min')
doy = pd.Series(dateTime.dayofyear)
m = doy.ne(doy.shift())
dateTime[m]
# DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
# '2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08',
# '2019-01-09', '2019-01-10',
# ...
# '2019-12-22', '2019-12-23', '2019-12-24', '2019-12-25',
# '2019-12-26', '2019-12-27', '2019-12-28', '2019-12-29',
# '2019-12-30', '2019-12-31'],
# dtype='datetime64[ns]', length=365, freq=None)
</code></pre>
<p>要获得您描述的“计数器”,您可以使用<a href="https://stackoverflow.com/questions/18196811/cumsum-reset-at-nan">Cumsum reset at NaN</a>,稍微修改它并使用</p>
<pre><code>v = (~m).astype(int)
cumsum = v.cumsum()
reset = -cumsum[v == 0].diff().fillna(cumsum)
counting = v.where(v != 0, reset).cumsum()
# counting
# 0 0
# 1 1
# 2 2
# 3 3
# 4 4
# ..
# 34940 92
# 34941 93
# 34942 94
# 34943 95
# 34944 0
# Length: 34945, dtype: int64
</code></pre>