5

我有一个熊猫数据框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 按天/小时/分钟切片):

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]

它返回完全相同的错误。

4

2 回答 2

5

您可能需要将其更改为:

df = df.sort_values()df = df.sort_index()在 truncate 函数之前,以修复更高版本的 Pandas 中的错误。

所以你的代码看起来像:df = df.sort_index().truncate(before='12/20/2012 05:00:00', after='12/20/2012 09:00:00')

sort已弃用 DataFrames 以支持需要使用sort_valuesor 或sort_index. 您可以分别在此处此处的文档中找到有关每个文档的更多详细信息。

于 2018-07-26T15:07:26.927 回答
4

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

df = df.sort()在截断修复错误之前。

于 2013-02-06T07:22:44.350 回答