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

绘图分箱遇TypeError错误求助:int与str无法比较

解决TypeError: '<' not supported between instances of 'int' and 'str'的方案

错误原因

你的Temperature(F)列同时存在整数和字符串类型的数据,而pd.cut需要纯数值型数据才能执行区间比较操作,因此触发了类型不兼容的错误。

修复及绘图步骤

  • 转换列数据类型为数值型
    先将列中无法识别为数值的内容转为缺失值,确保列数据统一为数值类型:

    AccidentData_2021["Temperature(F)"] = pd.to_numeric(AccidentData_2021["Temperature(F)"], errors='coerce')
    
  • 处理缺失值(可选但建议)
    转换后可能出现NaN值,可根据需求选择删除或填充:

    # 删除含缺失值的行
    AccidentData_2021 = AccidentData_2021.dropna(subset=["Temperature(F)"])
    # 或用均值填充缺失值
    # AccidentData_2021["Temperature(F)"] = AccidentData_2021["Temperature(F)"].fillna(AccidentData_2021["Temperature(F)"].mean())
    
  • 重新执行分箱操作
    数据转为纯数值型后,再运行你的分箱代码:

    bins=[-30, 0, 30, 60, 90, 120]
    group_names =["-30 to 0", "0 to 30", "30 to 60", "60 to 90", "Over 100"]
    AccidentData_2021["Temperature(F)"]=pd.cut(AccidentData_2021["Temperature(F)"], bins, labels=group_names)
    
  • 绘制柱状图
    统计各区间数据量后生成柱状图:

    import matplotlib.pyplot as plt
    
    temp_counts = AccidentData_2021["Temperature(F)"].value_counts()
    temp_counts.plot(kind='bar')
    plt.title('Accidents by Temperature Range')
    plt.xlabel('Temperature Range (F)')
    plt.ylabel('Number of Accidents')
    plt.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:40:28