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

Python Pandas按TYPE分组绘制月度均值堆叠柱状图实现方法

问题原因

你现有代码的核心问题是未按TYPE字段分组计算月度均值,且计算结果没有转换为符合堆叠柱状图要求的宽表结构,因此无法正确绘图。

调整后的实现代码
import pandas as pd
import matplotlib.pyplot as plt

# 1. 预处理:日期格式转换+按日期升序排序
df['DATE'] = pd.to_datetime(df['DATE'])
df = df.sort_values('DATE', ascending=True)

# 2. 按月份+TYPE分组,计算VALUE的月度均值
df_monthly = df.groupby([pd.Grouper(key='DATE', freq='M'), 'TYPE'])['VALUE'].mean().reset_index()

# 3. 转换为宽表:索引为月份,列名为TYPE,值为对应均值
df_pivot = df_monthly.pivot(index='DATE', columns='TYPE', values='VALUE').fillna(0)

# 4. 绘制堆叠柱状图
df_pivot.plot(kind='bar', stacked=True, figsize=(10,6))
# 可选:优化x轴日期显示格式,避免显示全时间戳
plt.xticks(ticks=range(len(df_pivot.index)), labels=[x.strftime('%Y-%m') for x in df_pivot.index], rotation=45)
plt.tight_layout()
plt.show()
代码说明
  • 先完成日期格式转换和日期排序,满足按日期升序处理的要求
  • 分组计算时同时按月度时间粒度和TYPE字段分组,得到每个月每个类型的均值
  • 通过pivot方法转换为宽表结构后,每一列对应一个TYPE的月度均值,直接调用绘图方法即可生成堆叠柱状图
  • 补充了x轴日期格式化的可选代码,优化图表可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:15:08