Pandas按星期顺序绘制柱状图出现KeyError报错如何解决
问题解决
报错原因
- 你错误调用了
value_counts()方法:该方法的作用是统计Series里不同值的出现频次,调用后返回结果的索引是sum列的数值(22222、26572这类),自然不存在星期类的索引,直接索引Monday等内容必然触发KeyError。 - 你提供的样本数据中没有Tuesday、Wednesday对应的行,直接索引不存在的索引值也会抛出错误。
解决代码
如果需要保留周一到周日的完整顺序,缺失的星期对应数值填充为0,使用reindex方法重排索引即可:
# 定义周一到周日的固定顺序 week_order = ['Monday', 'Tuesday', 'Wednesday','Thursday','Friday','Saturday','Sunday'] # 重排索引、填充缺失值后绘图 df2['sum'].reindex(week_order, fill_value=0).plot(kind="bar")
如果只需要显示现有存在的星期数据,按周顺序排序即可:
# 仅保留现有数据对应的星期顺序 week_order = ['Monday', 'Thursday','Friday','Saturday','Sunday'] df2['sum'].reindex(week_order).plot(kind="bar")
内容的提问来源于stack exchange,提问作者Tobitor
相关产品推荐
相关产品推荐

