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

Python:基于订单DataFrame绘制各颜色月度出现占比折线图的方法

实现方案

步骤1:修正分组逻辑

你原有的代码仅按颜色维度分组,缺少了月度维度的拆分,因此无法得到分月的统计结果。我们需要同时按「月份」和「颜色」两个维度分组计算。

步骤2:完整代码实现

首先确保你的DataFrame索引为datetime类型,再按以下逻辑计算:

import pandas as pd
import matplotlib.pyplot as plt

# 1. 转换索引为datetime格式(如果已为datetime可跳过该步)
df.index = pd.to_datetime(df.index)

# 2. 按月末+颜色分组统计数量,当月未出现的颜色自动补0
monthly_color_cnt = df.groupby([pd.Grouper(freq="M"), "Color"])["Color"].count().unstack(fill_value=0)

# 3. 计算各颜色月度占比:单颜色数量 / 当月总订单数
monthly_color_ratio = monthly_color_cnt.div(monthly_color_cnt.sum(axis=1), axis=0)

# 4. 绘制折线图
monthly_color_ratio.plot(kind="line", figsize=(12, 6), marker="o")
plt.title("各颜色月度出现占比趋势")
plt.xlabel("月份")
plt.ylabel("占比")
plt.legend(title="颜色")
plt.grid(alpha=0.3)
plt.show()

输出说明

最终得到的monthly_color_ratio就是你需要的格式:

  • 索引为每月月末日期
  • 列名为所有出现过的颜色
  • 值为对应颜色当月占比,当月无订单的颜色默认填充为0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:45:04