Pandas Datetime索引DataFrame提取行报错:KeyError: 'Datetime'求助
解决Datetime索引DataFrame的时间范围筛选问题
你遇到的KeyError: 'Datetime'是因为Datetime已经被设置为DataFrame的索引,不再是普通的列,所以无法通过frames["Datetime"]来访问它。以下是几种可行的解决方案:
方法1:基于索引直接筛选(推荐)
利用索引的between方法,直接在loc中进行范围判断:
df2 = frames.loc[frames.index.between('2022-06-09 12:34:00', '2022-06-09 12:38:00')]
方法2:使用时间切片(更简洁)
由于你的索引是DatetimeIndex,支持直接用时间范围切片,写法更高效:
# 精确时间范围切片 df2 = frames['2022-06-09 12:34:00':'2022-06-09 12:38:00'] # 省略秒数也能自动匹配对应时间区间 df2 = frames['2022-06-09 12:34':'2022-06-09 12:38']
方法3:将索引转回列后筛选(仅当有额外需求时使用)
如果需要把Datetime重新作为普通列处理,可以先重置索引,再用你原本的逻辑:
# 重置索引,Datetime会从索引变回普通列 frames_reset = frames.reset_index() df2 = frames_reset.loc[frames_reset["Datetime"].between('2022-06-09 12:34:00','2022-06-09 12:38:00')]
内容的提问来源于stack exchange,提问作者span_path
相关产品推荐
相关产品推荐

