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

如何在Pandas中对含分类数据的日期按月分组?

在Pandas中同时处理分类与数值数据的按月分组方法

问题场景

数据框包含日期列、分类列(如Campaign_Name)和数值统计列,需要按月份+分类项分组,对数值列进行聚合(如求和),同时保留分类数据的分组维度。

示例数据

DateCampaign_NameNo_of_Male_ViewersNo_of_Female_Viewers
2021-06-12Dove_birds12687656
2021-02-05Pantene_winner6578964
2021-09-15Budweiser_wazap764276
2021-05-13Pantene_winner4256578
2021-12-12Budweiser_wazap9867111
2021-09-09Dove_birds157811456
2021-05-24Pantene_winner6787475
2021-09-27Budweiser_wazap874296
2021-09-09Dove_soft117515486

解决步骤

  1. 转换日期列类型:将字符串格式的日期转为Pandas的datetime类型,方便提取月份信息。
  2. 生成月份名称:从datetime列中提取英文月份名称(如February),作为分组维度之一。
  3. 分组聚合:同时按月份名称和**分类列Campaign_Name**分组,对数值列执行求和操作。

完整代码示例

import pandas as pd

# 构建示例数据
data = {
    'Date': ['2021-06-12', '2021-02-05', '2021-09-15', '2021-05-13', '2021-12-12',
             '2021-09-09', '2021-05-24', '2021-09-27', '2021-09-09'],
    'Campaign_Name': ['Dove_birds', 'Pantene_winner', 'Budweiser_wazap', 'Pantene_winner', 'Budweiser_wazap',
                      'Dove_birds', 'Pantene_winner', 'Budweiser_wazap', 'Dove_soft'],
    'No_of_Male_Viewers': [1268, 657, 7642, 425, 9867, 1578, 678, 8742, 1175],
    'No_of_Female_Viewers': [7656, 8964, 76, 6578, 111, 11456, 7475, 96, 15486]
}
df = pd.DataFrame(data)

# 转换日期列
df['Date'] = pd.to_datetime(df['Date'])

# 提取月份名称
df['Month'] = df['Date'].dt.month_name()

# 分组聚合数值列
result = df.groupby(['Month', 'Campaign_Name'])[['No_of_Male_Viewers', 'No_of_Female_Viewers']].sum().reset_index()

# 按自然月份顺序排序(可选)
month_order = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
result['Month'] = pd.Categorical(result['Month'], categories=month_order, ordered=True)
result = result.sort_values('Month')

print(result)

部分预期输出

MonthCampaign_NameNo_of_Male_ViewersNo_of_Female_Viewers
FebruaryPantene_winner6578964
MayPantene_winner110314053
JuneDove_birds12687656
SeptemberBudweiser_wazap16384172
SeptemberDove_birds157811456
DecemberBudweiser_wazap9867111

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:36:24