绘图分箱遇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
相关产品推荐
相关产品推荐

