python - 当边缘日期不在数据框中时,日期之间的 Pandas 日期索引 loc 会引发 KeyError
问题描述
我不明白为什么在日期索引上使用 loc 时出现 KeyError: Timestamp('...') 。
给定 df: dtypes are datetime64[ns], int, int
,DATE1 is index
DATE1 VALUE2 VALUE3
2021-08-20 00:00:00 11 424
2021-08-21 00:00:00 22 424
2021-08-22 00:00:00 33 424
2021-08-23 00:00:00 44 242
我正在尝试像这样在索引上使用 loc :
start_date = date(2021-08-20)
end_date = date(2021-08-23)
df = df.loc[start_date:end_date]
这工作正常。我得到了 4 条记录。但是,当我这样做时:
start_date = date(2021-08-20)
end_date = date(2021-08-24) #end_date is higher than values in dataframe
df = df.loc[start_date:end_date]
我收到 KeyError: KeyError: Timestamp('2021-08-24 00:00:00')
。有人可以指出我如何解决这个问题吗?
解决方案
您使用的是哪个熊猫版本?这对我来说可以:
start_date = pd.to_datetime('2021-08-20')
end_date = pd.to_datetime('2121-08-24')
df.loc[start_date:end_date]
输出:
VALUE2 VALUE3
DATE1
2021-08-20 11 424
2021-08-21 22 424
2021-08-22 33 424
2021-08-23 44 242
推荐阅读
- android - 在 Google 排行榜中获取用户排名(最新库)
- java - 日志查看器在 docker 中运行的 JBoss 7.1 管理控制台上不起作用
- loops - 如何访问 RiotJS 中嵌套的每个循环中的项目
- visual-studio - 如何修改 Visual Studio 2017 的编译行?
- vba - 将对象的副本放入集合中
- laravel - 从另一个控制器功能向后控制器功能发送请求
- android - 如何在 Flutter 的列表中获取 Icons 数据类型?
- android - 实施年度订阅
- c++ - mySQL C++ 连接器 Visual Studio 2017
- c++ - Makefile 没有按照我的说法构建对象