按索引过滤熊猫-KeyError

时间:2020-03-29 18:42:32

标签: python pandas keyerror

我正在尝试过滤选定时间段的熊猫。 (已添加图片)开始日期和结束日期将在输入框中输入。

在索引列中找到“天”,但是第三行给出了错误消息。

df = pd.read_excel('prices.xlsx', index_col=0)
df.iloc[::-1]
filtered_date = df[(df['Day'] >= 'start_date') & (df['Day'] <= 'end_date')]

我收到“ KeyError”消息。我用谷歌搜索发现key_error如果字典中没有可用的键,就会发生。我在代码中没有使用字典,也不知道如何解决它。键“ Day”的确是第一(索引)行的第一个值。

谢谢。

This is my dataframe

1 个答案:

答案 0 :(得分:0)

查看您的DataFrame图片:

  • “常规”列的所有名称都位于较高位置。
  • “日期”位于下方,表示它是名称 索引列。

您的代码包含 df ['Day'] ,因此您尝试引用常规 列为 Day 。 由于此名称的常规列不存在,因此将引发异常。

有2种应对方法:

  1. 从调用 read_excel 中删除 index_col = 0 。这样, Day 常规列,因此您的以下代码应该可以使用。
  2. df ['Day'] 更改为 df.index 。这样,您可以引用索引

当然,请放置任何有效的日期字符串,而不是开始日期结束日期

还有另一件事要考虑:由于 Day 实际上是一列 日期,它应该具有 datetime 类型。所以大概你应该加 将 parse_dates = [0] 参数设置为 read_excel ,以使此列从 string datetime