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

Python中如何按周分组绘制value_dummy对应的分组柱状图?

实现方案

你可以按照如下步骤完成按周分组的柱状图绘制:

  1. 先将日期列转为datetime格式,按照你指定的区间标注对应的周标签
  2. 分组统计每周内value_dummy各取值的出现次数
  3. 直接调用pandas的plot接口生成分组柱状图

完整可运行代码

import pandas as pd
import matplotlib.pyplot as plt

# 原始数据
data = {'date': ["2021-05-03", "2021-05-04", "2021-05-11", "2021-05-19", "2021-05-19"], 
        'id_customer': ["5", "7", "8", "5", "3"], 
        'value_dummy': [1, 0, 1, 1,0]}
df = pd.DataFrame.from_dict(data)

# 1. 转换日期格式,添加周分组标签
df['date'] = pd.to_datetime(df['date'])
df['week'] = pd.cut(
    df['date'],
    # 分箱边界覆盖所有日期范围
    bins=[pd.to_datetime('2021-05-02'), 
          pd.to_datetime('2021-05-09'), 
          pd.to_datetime('2021-05-16'), 
          pd.to_datetime('2021-05-23')],
    labels=['第1周', '第2周', '第3周']
)

# 2. 统计每周各value_dummy取值的计数,缺失值补0
week_count = df.groupby(['week', 'value_dummy'])['value_dummy'].count().unstack(fill_value=0)

# 3. 绘制分组柱状图
week_count.plot(kind='bar', figsize=(7, 4))
# 优化图表显示效果
plt.xlabel('周数')
plt.ylabel('出现次数')
plt.xticks(rotation=0)  # 保持x轴标签水平显示
plt.legend(title='value_dummy取值')
plt.show()

效果说明

运行代码后会生成你需要的分组柱状图,横轴为三个周,每周对应两根柱子分别表示value_dummy取值为0和1的计数,和你给出的示例效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:48:01