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

Quantstats报错TypeError:带时区datetime64与naive datetime无法比较

问题:Quantstats生成HTML报告时的时区类型错误

我在Anaconda中尝试用Quantstats的quantstats.reports模块为投资组合生成指标报告,刚接触Python和Quantstats,写了以下代码调用报告模块生成HTML报告并保存到Output文件夹:

import quantstats as qs

qs.extend_pandas()

stock = qs.utils.download_returns('GLD')

qs.reports.html(stock, output='Output/GLD.html')

运行后出现如下错误:

TypeError: Invalid comparison between dtype=datetime64[ns, America/New_York] and datetime

我推测是datetime64带时区(America/New_York)和无时区的datetime类型比较导致的,但没法深入排查Quantstats代码,需要解决建议。


解决建议
  • 移除时间序列的时区信息
    下载完收益数据后,将索引的时区去掉,转为无时区的datetime64类型,修改后的代码如下:

    import quantstats as qs
    
    qs.extend_pandas()
    
    stock = qs.utils.download_returns('GLD')
    # 移除索引的时区信息
    stock.index = stock.index.tz_localize(None)
    
    qs.reports.html(stock, output='Output/GLD.html')
    
  • 升级Quantstats到最新版本
    这个时区问题可能是旧版本的已知bug,打开Anaconda Prompt执行以下命令升级:

    pip install --upgrade quantstats
    

    升级后再运行原代码验证是否解决问题。

  • 手动指定下载数据的时区
    下载数据时指定UTC时区,避免本地化冲突,修改下载代码:

    stock = qs.utils.download_returns('GLD', timezone='UTC')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:50:19