切片/截断时间索引数据帧会引发KeyE

2024-06-07 11:00:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过一个函数运行许多datetimeindexed数据帧,在这个函数中,我根据开始和结束时间段对数据帧进行切片。但是,同一个函数对许多数据帧运行良好,它在某些数据帧上引发了无法解释的KeyError。 数据帧中的数据在数据类型、列和格式方面是相同的。下面是一个KeyError的示例:

引发错误的摘录数据帧:

>> df_boiler_temp
>> @log_date @tariff_indicator  #text                                   
2017-04-23 00:12:48.802              none   65.0
2017-04-23 00:19:00.223              none   64.0
2017-04-23 00:24:02.544              none   63.0
2017-04-23 00:29:20.766              none   62.0
2017-04-23 00:35:00.088              none   61.0
2017-04-23 00:41:00.666              none   60.0
2017-04-23 00:46:00.632              none   59.0
2017-04-23 00:53:38.935              none   58.0
2017-04-23 00:59:21.152              none   57.0
2017-04-23 01:05:59.926              none   56.0
2017-04-23 01:09:58.652              none   65.0
2017-04-23 01:11:00.651              none   66.0
2017-04-23 01:14:10.577              none   67.0
2017-04-23 01:19:58.829              none   66.0
2017-04-23 01:28:00.635              none   65.0

引发KeyError的代码

^{pr2}$

(这条线也是如此,这条线基本上是相同的

df = df_boiler_temp[row['start']: row['end']]

引发的异常是:

KeyError: 1492909671481000000L

在日期-时间表示法中转换为2017-04-23 01:07:51.481000。在

>> row['start']
>> 2017-04-23 01:07:51.481000

>> row['end']
>> 2017-04-23 02:24:07.953000

我不明白为什么使用这些值进行截断会引发KeyError,而引发的keyror正好位于数据帧。任何我该怎么解决这个问题?在


Tags: 数据函数boilernonedf切片starttemp
1条回答
网友
1楼 · 发布于 2024-06-07 11:00:22

我不明白为什么,但我发现this指出数据集没有排序。就我所分析的数据集而言,它已经被分类了,但下面这一行似乎起到了作用:

df = df_boiler_temp.sort_index().truncate(before=row['start'], after=row['end'])

编辑: 似乎我包含的数据集被复制并附加到原始数据集。因此,很难发现重复。在

相关问题 更多 >

    热门问题