You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas处理CSV删除大于指定日期数据时出现KeyError的解决方法

错误原因

你代码存在3处核心问题,触发KeyError的直接原因是drop方法调用错误:

  • 变量名混用:你定义的DataFrame变量为df,但转换日期、设置索引时错用了不存在的变量daten
  • drop方法入参错误:df.drop()第一个参数需要传入要删除的行索引值,你直接传入布尔判断序列时,pandas会把True/False当成索引名去查找,自然找不到对应项触发KeyError
  • 无需用drop绕路,直接用布尔索引筛选符合要求的行效率更高

正确实现代码

import pandas as pd

# 读取CSV文件
df = pd.read_csv('test.csv')
# 转换Date列为日期格式
df["Date"] = pd.to_datetime(df["Date"], format="%Y-%m-%d")
# 直接筛选Date小于指定日期的行
df = df[df["Date"] < "2010-01-05"]
# 设置Date为索引
df.set_index("Date", inplace=True)

如果你一定要用drop方法实现,写法如下:

# 传入要删除的行对应的索引
df.drop(df[df["Date"] >= "2010-01-05"].index, axis=0, inplace=True)

内容的提问来源于stack exchange,提问作者Martin Kunze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:24:00