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

Pandas判断日期是否存在于DataFrame索引时出现误判的问题

问题原因分析
  • 最核心的原因是索引类型与待判断值类型不匹配:你打印出来的索引看起来是字符串格式的日期,实际上通过pyEX拉取的DataFrame默认会将日期索引设为datetime64类型,你用来判断的是字符串类型的日期,部分旧版本的pandas在处理字符串和DatetimeIndex的in逻辑时存在异常,会出现误判。
  • 直接使用Python原生的in关键字判断pandas索引成员本身就不是最优写法,尤其是面对非字符串类型的索引时,很容易出现类型匹配导致的逻辑错误。
解决方法
  • 你可以先执行代码print(df.index.dtype)确认索引类型,如果输出是datetime64[ns]相关类型,把待判断的日期字符串转成datetime格式后再判断即可:
import pandas as pd
for i in ['2021-11-18', '2021-04-19', '2021-06-20', '2021-05-10']:
    check_date = pd.to_datetime(i)
    if check_date in df.index:
        print(i + " is an index")
  • 更稳妥的通用写法是使用pandas内置的isin方法,不需要手动处理类型匹配,兼容性更强:
for i in ['2021-11-18', '2021-04-19', '2021-06-20', '2021-05-10']:
    if df.index.isin([i]).any():
        print(i + " is an index")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:02