【问题标题】:Slicing/Truncating TimeIndexed DataFrame raises KeyError切片/截断 TimeIndexed DataFrame 引发 KeyError
【发布时间】:2017-06-15 09:05:06
【问题描述】:

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

引发错误的摘录DataFrame:

>> 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的代码

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

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

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 完全落在数据框中存在的日期时间之间时,用这些值截断会引发 KeyError。知道如何解决这个问题吗?

【问题讨论】:

  • 请尝试将您的开始和结束日期转换为 str 格式:使用 pd.Timestamp('2006-11-16 18:30:00').strftime('%Y-%m-% d %H:%M:%S') 并尝试切片。

标签: python dataframe keyerror truncation


【解决方案1】:

我不明白为什么,但我发现 this 指出数据集未排序。虽然据我分析数据集,但它已经排序,以下行似乎可以解决问题:

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

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

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 2013-07-09
    • 2015-07-27
    • 1970-01-01
    • 2018-02-28
    相关资源
    最近更新 更多