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

如何按索引名删除pandas DataFrame行?操作遇KeyError报错

问题原因及解决方法

核心问题:索引类型不匹配

你看到的索引显示1900-01-01看起来像字符串,但实际你的索引元素是datetime类型(从df.index的输出里,元素直接显示为日期格式而非带引号的字符串就能判断),而你用字符串'1900-01-01'去匹配,两者类型不兼容,所以pandas找不到对应的索引键。

解决办法

方法1:将字符串转为datetime对象后删除

import pandas as pd
df = df.drop(index=pd.to_datetime('1900-01-01'))

或者用datetime模块:

from datetime import datetime
df = df.drop(index=datetime(1900, 1, 1))

方法2:用布尔索引过滤

直接筛选掉目标日期对应的行:

import pandas as pd
df = df[df.index != pd.to_datetime('1900-01-01')]

方法3:临时将索引转为字符串(不推荐,除非后续不需要日期操作)

如果只是临时处理,可以先把索引转成字符串类型再删除:

df.index = df.index.astype(str)
df = df.drop(index='1900-01-01')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:28:14