Pandas DatetimeIndex截断错误

时间:2013-01-31 15:45:10

标签: python pandas slice

我有一个pandas数据帧df

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:002012-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 DataFrame slicing by day/hour/minute):

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 个答案:

答案 0 :(得分:3)

df是通过使用concat函数将多个数据帧连接在一起而创建的。

截断前的

df = df.sort()修复了错误。

答案 1 :(得分:2)

您可能需要将其更改为:

export default class App extends Component { render() { return ( <BrowserRouter> <div className="AppContainer"> <Navbar /> <MainPage /> </div> </BrowserRouter> ); } } df = df.sort_values()在截断函数之前,以修复更高版本的Pandas中的错误。

因此您的代码应类似于:df = df.sort_index()

对于数据框,不推荐使用

df = df.sort_index().truncate(before='12/20/2012 05:00:00', after='12/20/2012 09:00:00'),而需要使用sortsort_values。您可以分别在文档herehere中找到有关它们的更多详细信息。