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

使用Matplotlib绘制分组后DataFrame柱状图出现Months列KeyError的原因

KeyError: 'Months' 错误原因及解决方法

问题场景

执行以下代码绘制月度销量柱状图时,触发了KeyError: 'Months':

result = all_data.groupby("Months").sum() 
# 输出的result数据结构如下:
#             Quantity Ordered   Price Each      Sales
# Months          
# 1                10903       1811768.38  1822256.73
# 2                13449       2188884.72  2202022.42
# 3                17005       2791207.83  2807100.38
# ...(其余月份数据省略)

plt.bar(result["Months"], result["Sales"])
plt.show()

错误原因

使用groupby("Months").sum()分组聚合时,Pandas默认会将用于分组的字段Months设置为DataFrame的索引,而非保留为普通列。此时result的列仅包含Quantity Ordered、Price Each、Sales三种,直接通过result["Months"]访问会触发KeyError,因为该名称已不再对应任何列。

解决方法

有两种常用的修复方式:

  • 方式一:分组时保留Months为普通列
    在groupby中添加as_index=False参数,让分组字段保持为列而非索引:
    result = all_data.groupby("Months", as_index=False).sum()
    plt.bar(result["Months"], result["Sales"])
    plt.show()
    
  • 方式二:直接访问索引获取月份数据
    既然Months是索引,直接通过result.index获取月份值即可:
    plt.bar(result.index, result["Sales"])
    plt.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:36:33