我有一个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: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 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]
返回完全相同的错误。
答案 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')
,而需要使用sort
或sort_values
。您可以分别在文档here和here中找到有关它们的更多详细信息。