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

如何将t.series的datetime64[ns]转为datetime.datetime后与CSV日期对象合并

报错原因

你遇到的报错是因为两张表用于关联的Date列数据类型不匹配:

  • BaseDate的Date列是存储datetime.datetime实例的object类型
  • is_EOM_QOM的Date列是pandas原生的datetime64[ns]类型
    pandas的merge操作要求关联键的类型一致,因此触发了该报错。
解决方案

按照你倾向于将datetime64[ns]转换为datetime.datetime(object类型)的需求,直接修改is_EOM_QOM的Date列即可:

# 将datetime64[ns]类型转换为datetime.datetime实例组成的object类型
is_EOM_QOM['Date'] = is_EOM_QOM['Date'].dt.to_pydatetime()

# 再执行原merge逻辑即可正常运行
BaseDate.merge(is_EOM_QOM, left_on='Date', right_on='Date', how='left')
补充说明
  • 转换后可执行BaseDate['Date'].dtype和is_EOM_QOM['Date'].dtype校验类型,两者均为object且元素均为datetime实例即可正常关联
  • 如果后续没有必须使用object类型存储时间的硬性要求,更推荐在读取CSV时就通过pd.read_csv(..., parse_dates=['Date'])将BaseDate的Date列统一转为datetime64[ns]类型,该类型的时间计算、存储性能都优于object类型的datetime实例
  • 报错提示的pd.concat方案仅适用于两张表行数、行顺序完全一致,不需要按值匹配关联的场景,你需要左连接的场景下转类型后用merge更符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:57:01