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

Matplotlib日周期绘图报错TypeError: invalid type promotion求助

解决Matplotlib绘制日周期时间数据时的TypeError问题

嘿,我之前也踩过一模一样的坑!你这个TypeError: invalid type promotion报错,核心原因就是你的DATE列还只是字符串(object)类型——年周期数据因为时间跨度大、格式相对简单,Matplotlib还能勉强“蒙混过关”,但到了带时分秒的日周期数据,它就没办法把字符串转换成可计算的时间格式了。

给你一套快速解决的步骤:

  • 第一步:先确认数据类型
    运行下面的代码看看DATE列的类型:

    print(df_diesel['DATE'].dtype)
    

    如果输出是object,那百分百是字符串类型的问题。

  • 第二步:把字符串时间转成datetime类型
    用Pandas的to_datetime方法转换,你的时间格式是标准的YYYY-MM-DD HH:MM:SS,直接转就行:

    import pandas as pd
    df_diesel['DATE'] = pd.to_datetime(df_diesel['DATE'])
    

    要是遇到特殊格式的时间,还可以加format参数指定规则,比如pd.to_datetime(df_diesel['DATE'], format='%Y-%m-%d %H:%M:%S'),不过你的情况不用额外指定。

  • 第三步:重新运行绘图代码
    转换完成后,再执行你的绘图代码就正常了,完整代码如下:

    from matplotlib import pyplot as plt
    %matplotlib inline
    import pandas as pd
    
    # 先处理时间类型转换
    df_diesel['DATE'] = pd.to_datetime(df_diesel['DATE'])
    
    plt.title("Fuel in Australia")
    plt.xlabel("DATE")
    plt.ylabel("price")
    plt.scatter(df_diesel['DATE'], df_diesel['price'])
    plt.show()
    

简单说,Matplotlib绘制时间序列图的时候,必须要把时间列转换成datetime类型,这样它才能正确解析时间的先后顺序和间隔,不会触发类型不兼容的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:42:06