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

pandas如何自定义设置索引 同时按月份分组数据用于绘制销量统计图

操作实现方案

1. 替换数据框为自定义索引

你可以直接使用pandas的set_index方法完成索引替换:

# 自定义索引序列custom_index长度需要和df行数一致,drop参数设为False可以保留原索引列
df = df.set_index(custom_index, drop=False)

注意:自定义索引的长度需要和数据框的行数完全匹配,否则会触发赋值错误。

2. 按月份分组统计销量

根据你的需求分两种场景处理:

场景1:按自然月1-12月维度分组(所有年份的同月份合并统计)

# 先确保日期列是datetime格式
df['Release Date'] = pd.to_datetime(df['Release Date'])
# 提取月份属性
df['month'] = df['Release Date'].dt.month
# 按月份分组统计销量总和,将sales替换为你实际的销量列名
month_sales = df.groupby('month')['sales'].sum().reset_index()

场景2:按年+月维度分组(例如2023年1月、2023年2月分别统计)

你之前写的代码可以直接调整使用:

per = df['Release Date'].dt.to_period("M")
# 按年-月分组统计销量,将sales替换为你实际的销量列名
month_sales = df.groupby(per)['sales'].sum().reset_index()
# 如需绘图更方便,可将period格式转为字符串
month_sales['Release Date'] = month_sales['Release Date'].astype(str)

3. 绘制月份-销量统计图

以柱状图为例,调用matplotlib实现绘制:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文显示问题
plt.figure(figsize=(10, 6))
# 如果是1-12月维度绘图用这行
plt.bar(month_sales['month'], month_sales['sales'])
# 如果是年+月维度绘图替换为下一行
# plt.bar(month_sales['Release Date'], month_sales['sales'])

plt.xlabel('月份')
plt.ylabel('总销量')
plt.title('各月份销量统计')
# 1-12月维度可加这行固定刻度
plt.xticks(range(1, 13))
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:54:02