按索引过滤熊猫-Keyerror

问题描述 投票:-1回答:1

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

在索引列中找到

“ Day”,但是第三行给出了错误消息。

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

python pandas keyerror
1个回答
0
投票

查看您的DataFrame图片:

  • “常规”列的所有名称都位于更高的位置。
  • “ Day”位于下方,表示它是index列。

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

有两种解决方法:

    从调用[中<index_col = 0。这样,Day将是regular列,因此您的以下代码应该可以使用。df ['Day']更改为
  1. df.index
  2. 。这样,您可以引用index当然,请放置任何有效的日期字符串,而不是开始日期

结束日期。还有另外一件事要考虑:由于Day

实际上是一列

dates,应为datetime类型。所以大概你应该加将parse_dates = [0]参数设置为read_excel,以将该列转换为字符串日期时间

© www.soinside.com 2019 - 2024. All rights reserved.