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

如何用Pandas按月份与类别分组绘制财务数据柱状图

按月份+类别统计财务数据并绘制分组柱状图

问题说明

现有包含日期、类别、金额的财务CSV数据,需要实现:

  • 按月份分组,统计每个类别对应的总金额
  • 绘制每个月份下不同类别总额的分组柱状图

原代码仅能统计月度总金额,尝试多列分组时因语法错误执行失败。

数据集示例:

Date                Category                Amount
0   12/29/2022          Food & Drink            -28.35  
1   12/30/2022          Shopping                -12.12  
2   11/30/2022          Food & Drink            -12.30  
3   11/30/2022          gas                     -12.31  
4   10/30/2022          Food & Drink            -6.98

初始仅统计月度总额的代码:

df['Transaction Date'] = pd.to_datetime(df['Transaction Date'], format='%m/%d/%Y') 
df = df.groupby(df['Transaction Date'].dt.month)['Amount'].sum()

失败的多列分组代码(语法错误):

df = df.groupby((df['Transaction Date'].dt.month),['Category'])['Amount'].sum()

解决方案

1. 修正数据分组统计代码

核心问题是多分组键需放入同一个列表中,而非分开作为参数传递。另外注意数据集列名是Date,需和代码中的列名统一:

import pandas as pd

# 读取CSV数据(假设文件名为finance_data.csv)
df = pd.read_csv('finance_data.csv')

# 转换日期格式,提取月份
df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')
df['Month'] = df['Date'].dt.month  # 新增月份列,方便后续处理

# 按月份+类别分组,统计金额总和
grouped_data = df.groupby(['Month', 'Category'])['Amount'].sum().reset_index()

# 可选:将金额转为正数(原数据为支出负数,正数更符合展示逻辑)
grouped_data['Amount'] = grouped_data['Amount'].abs()

2. 绘制分组柱状图

直接使用Pandas绘图接口结合Matplotlib实现,将类别作为分组维度:

import matplotlib.pyplot as plt

# 将数据转换为宽格式:月份为行,类别为列
pivot_data = grouped_data.pivot(index='Month', columns='Category', values='Amount').fillna(0)

# 绘制分组柱状图
pivot_data.plot(kind='bar', figsize=(12, 6), width=0.8)

# 设置图表属性
plt.title('月度各类别支出总额', fontsize=14)
plt.xlabel('月份', fontsize=12)
plt.ylabel('总金额', fontsize=12)
plt.xticks(rotation=0)
plt.legend(title='类别', bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()

代码说明

  • groupby(['Month', 'Category']):正确的多维度分组方式,先按月份、再按类别聚合
  • reset_index():将分组后的多级索引转为普通列,方便后续透视操作
  • pivot():将长格式数据转为宽格式,让每个类别成为单独的列,适配分组柱状图的绘制
  • 若原数据中金额为支出(负数),用abs()转为正数更符合图表展示逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:35:51