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

Pandas按年统计广告服务类消费总金额的实现方法

问题根因

你两次代码没拿到目标结果,对应两个明确问题:

  1. 第一次分组仅使用MCC Description作为分组键,没有加入Calendar Year维度,最终返回的是广告服务类目全时间周期的累计总额,自然不会按年份拆分
  2. 第二次筛选返回空结果,是因为字符串精确匹配大小写不匹配:你列里存储的广告服务取值是全大写的ADVERTISING SERVICES,但筛选条件写的是首字母大写格式的Advertising services,pandas字符串等值判断默认大小写敏感,所以匹配不到任何数据行。
可直接运行的实现方案

优先用「先筛选目标类目、再按年份分组汇总」的写法,性能更高,不需要处理无关类目的数据:

# 精确匹配列中存储的全大写广告服务类目值
ad_service_data = df[df['MCC Description'] == 'ADVERTISING SERVICES']
# 按自然年分组统计广告服务年度消费总额
yearly_ad_total = ad_service_data.groupby('Calendar Year')['Amount'].sum()

如果后续需要统计所有类目的年度消费额,也可以直接做双维度分组,再单独提取广告服务的结果:

# 按消费类目、自然年双维度分组,汇总所有类目的年度消费
all_cat_yearly_total = df.groupby(['MCC Description', 'Calendar Year'])['Amount'].sum()
# 索引提取广告服务类目的年度统计结果
yearly_ad_total = all_cat_yearly_total.loc['ADVERTISING SERVICES']
避坑提示
  • 筛选分类字段前,建议先执行df['MCC Description'].unique()查看字段实际存储的取值,避免因为大小写差异、字段前后带多余空格导致筛选为空
  • 如果要提升筛选容错性,可以先统一处理字符串格式再匹配,示例如下:
# 先去除字段前后空格、统一转大写后再做匹配
ad_service_data = df[
    df['MCC Description'].str.strip().str.upper() == 'ADVERTISING SERVICES'
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:30:55