<p>我认为您可以使用<code>subset</code>和{a1}来删除行,但这不是最快的方法。您可以将列<code>Date</code>设置为<code>index</code>,然后按时间<code>end</code>剪切<code>DataFrame</code>。在</p>
<pre><code>import pandas as pd
import datetime as datetime
#create testing DataFrame
def format_time():
t = datetime.datetime.now()
s = t.strftime('%Y-%m-%d %H:%M:%S')
return pd.to_datetime(s)
start = format_time()
print start
2016-03-13 09:12:44
N = 85000
df = pd.DataFrame({'Date': pd.Series(pd.date_range(start - pd.Timedelta(days=1, minutes=20) , periods=N, freq='s')), 'a': range(N)})
print df.head()
Date a
0 2016-03-12 08:52:44 0
1 2016-03-12 08:52:45 1
2 2016-03-12 08:52:46 2
3 2016-03-12 08:52:47 3
4 2016-03-12 08:52:48 4
</code></pre>
^{pr2}$
<p>测试:</p>
<pre><code>In [87]: %timeit df[(df.index >= end ) & (df.index <= start)]
The slowest run took 4.01 times longer than the fastest. This could mean that an intermediate result is being cached
1000 loops, best of 3: 1.75 ms per loop
In [88]: %timeit df[end:]
The slowest run took 6.84 times longer than the fastest. This could mean that an intermediate result is being cached
10000 loops, best of 3: 120 µs per loop
</code></pre>