按索引过滤 pandas - Keyerror
Filtering in pandas by index - Keyerror
我正在尝试在 Pandas 中过滤选定的时间段。 (已添加图片)开始日期和结束日期将在输入框中输入。
"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
查看您的 DataFrame 的图片:
- "regular" 列的所有名称都位于较高位置。
- "Day"位置稍微低一点,说明是名字
索引列。
您的代码包含 df['Day'],因此您尝试引用 regular
名为 Day 的列。
由于此名称的常规列不存在,因此抛出异常。
有两种方法可以解决这个问题:
- 从对 read_excel 的调用中删除 index_col=0。这样 Day 将
成为 常规 列,因此您的以下代码应该有效。
- 将 df['Day'] 更改为 df.index。这样你就可以参考 index.
当然,用任何有效的日期字符串代替 start_date 和 end_date.
还有一件事需要考虑:因为 Day 实际上是一个列持有
dates,它应该有 datetime 类型。所以也许你应该添加
parse_dates=[0] 参数到 read_excel,将此列从
字符串 到 日期时间.
我正在尝试在 Pandas 中过滤选定的时间段。 (已添加图片)开始日期和结束日期将在输入框中输入。
"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
查看您的 DataFrame 的图片:
- "regular" 列的所有名称都位于较高位置。
- "Day"位置稍微低一点,说明是名字 索引列。
您的代码包含 df['Day'],因此您尝试引用 regular 名为 Day 的列。 由于此名称的常规列不存在,因此抛出异常。
有两种方法可以解决这个问题:
- 从对 read_excel 的调用中删除 index_col=0。这样 Day 将 成为 常规 列,因此您的以下代码应该有效。
- 将 df['Day'] 更改为 df.index。这样你就可以参考 index.
当然,用任何有效的日期字符串代替 start_date 和 end_date.
还有一件事需要考虑:因为 Day 实际上是一个列持有 dates,它应该有 datetime 类型。所以也许你应该添加 parse_dates=[0] 参数到 read_excel,将此列从 字符串 到 日期时间.