<p>如果您所说的时间值是规则的,没有间隔,则可以将切片语义与步骤参数一起使用:</p>
<pre><code>df.iloc[::60]
</code></pre>
<p>如果第一个条目不是第一分钟,如您所示,那么只需偏移第一个参数:</p>
^{pr2}$
<p>因为第14分钟是45分钟,第59分钟</p>
<p><strong>计时</strong></p>
<pre><code>In [176]:
s = pd.date_range(dt.datetime(2016,1,1), freq='1min', periods=10000)
s
Out[176]:
DatetimeIndex(['2016-01-01 00:00:00', '2016-01-01 00:01:00',
'2016-01-01 00:02:00', '2016-01-01 00:03:00',
'2016-01-01 00:04:00', '2016-01-01 00:05:00',
'2016-01-01 00:06:00', '2016-01-01 00:07:00',
'2016-01-01 00:08:00', '2016-01-01 00:09:00',
...
'2016-01-07 22:30:00', '2016-01-07 22:31:00',
'2016-01-07 22:32:00', '2016-01-07 22:33:00',
'2016-01-07 22:34:00', '2016-01-07 22:35:00',
'2016-01-07 22:36:00', '2016-01-07 22:37:00',
'2016-01-07 22:38:00', '2016-01-07 22:39:00'],
dtype='datetime64[ns]', length=10000, freq='T')
In [179]:
%timeit s[s.minute == 59]
%timeit s[::60]
1000 loops, best of 3: 639 µs per loop
10000 loops, best of 3: 27.5 µs per loop
</code></pre>
<p>所以切片速度快了20倍</p>