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

Pandas两DataFrame日期比较报错datetime64[ns]与Timestamp无法比较如何解决

报错原因
  1. 时区类型不匹配:MeteoCH的索引是无时区的datetime64[ns]类型,PicoLog的索引是带UTC+1时区的时间戳类型,两类时间对象默认不支持直接比较。
  2. drop方法参数错误:你向drop传入了筛选得到的DataFrame子集,但drop要求传入的是要删除行的索引标签/位置,参数类型不匹配也会触发错误。
解决方案

推荐优先统一两个时间索引的时区规则,再直接用布尔索引筛选保留符合要求的行,写法比drop更简洁不易出错,两种可选实现方式如下:

方式1:给MeteoCH索引添加相同时区(推荐,避免夏令时/时间偏移误差)

# 给MeteoCH的索引添加和PicoLog一致的UTC+1时区,如需适配夏令时可替换为'Europe/Zurich'
MeteoCH.index = MeteoCH.index.tz_localize('Etc/GMT-1')
# 筛选保留晚于等于PicoLog最小日期的行,直接覆盖原对象
MeteoCH = MeteoCH[MeteoCH.index >= PicoLog.index.min()]

方式2:去除PicoLog最小日期的时区信息

# 提取PicoLog最小日期并去除时区,适配MeteoCH的无时区索引
pico_min_date = PicoLog.index.min().tz_localize(None)
# 筛选行
MeteoCH = MeteoCH[MeteoCH.index >= pico_min_date]

如果一定要用drop方法实现,需要传入要删除行的索引:

pico_min_date = PicoLog.index.min().tz_localize(None)
MeteoCH.drop(MeteoCH[MeteoCH.index < pico_min_date].index, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:45:03