Pandas DatetimeIndex 截断错误
我有一个叫做 df
的 pandas 数据框:
Out[16]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 269850 entries, 2012-12-19 16:15:36 to 2012-12-20 14:36:55
Data columns:
X1 269850 non-null values
X2 269848 non-null values
X3 269848 non-null values
dtypes: float64(2), object(1)
我想从 2012-12-20 05:00:00
到 2012-12-20 09:00:00
这段时间内,提取出四个小时的数据。
当我尝试这样做时:
Slicedf = df.truncate(before='12/20/2012 05:00:00',after='12/20/2012 09:00:00')
出现了以下错误:
KeyError: datetime.datetime(2012, 12, 20, 5, 0)
我还尝试过(参考了这个链接:Pandas 数据框按天/小时/分钟切片):
from datetime import datetime
x=datetime(2012,12,20,5,0,0)
y=datetime(2012,12,20,9,0,0)
Slicedf = df.ix[x:y]
但是结果还是出现了完全相同的错误。
2 个回答
4
这个df
是通过把多个数据表拼接在一起,用了一个叫concat
的函数。
在截断之前,先用df = df.sort()
来排序,这样就解决了错误。