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

Pandas DataFrame按月份区间条件分组求和的聚合操作实现方法

实现方案

最优方案:使用pd.cut分箱+分组求和

这是性能最高、可读性最好的实现方式,基于pandas原生向量化运算,数据量较大时也能高效运行,后续调整分组规则也非常方便。

完整代码

import pandas as pd

# 示例DataFrame
df = pd.DataFrame(data= {'month' : [2,7,4,8], 'sales' : [10,40,70,50]})

# 方式1:先新增分组列再聚合,方便后续核对
df['month_group'] = pd.cut(
    df['month'],
    bins=[0, 6, 12],  # 分箱区间默认左开右闭,(0,6]刚好对应1-6月
    labels=['1-6月', '7-12月']
)
result = df.groupby('month_group', observed=True)['sales'].sum()

# 方式2:不新增临时列,直接聚合
# result = df.groupby(
#     pd.cut(df['month'], bins=[0,6,12], labels=['1-6月', '7-12月']),
#     observed=True
# )['sales'].sum()

print(result)

输出结果

month_group
1-6月     80
7-12月    90
Name: sales, dtype: int64

方案说明

  • pd.cut的区间规则刚好匹配需求,不需要额外调整开闭参数
  • observed=True适配pandas 1.5+版本的分组规则,避免输出不存在的空分组,结果更干净
  • 相比自定义apply、map映射的实现,该方案是向量化运算,性能高1~2个数量级,适合所有数据规模的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:45:08