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

需求:按Item与月份分组汇总Qty,生成对应月份列

实现按物品和月份汇总数量的透视表

需求说明

将原始的日期-物品-数量数据,按Item分组,按月份生成对应列,汇总每个物品在各月份的Qty总和,无数据的月份填充为0。

实现代码(基于Python Pandas)

import pandas as pd

# 1. 加载原始数据
data = {
    'Date': ['2022-01-01', '2022-01-01', '2022-01-01', '2022-02-01', '2022-02-01'],
    'Item': ['A', 'A', 'B', 'A', 'C'],
    'Qty': [10, 30, 40, 20, 10]
}
df = pd.DataFrame(data)

# 2. 提取月份大写缩写
df['Month'] = pd.to_datetime(df['Date']).dt.strftime('%b').str.upper()

# 3. 创建透视表并填充缺失值
pivot_df = df.pivot_table(
    index='Item',
    columns='Month',
    values='Qty',
    aggfunc='sum',
    fill_value=0
).reset_index()

# 4. 调整列顺序(确保按时间排序,可选)
month_order = ['JAN', 'FEB']
pivot_df = pivot_df[['Item'] + month_order]

# 查看结果
print(pivot_df)

代码解释

  • 加载数据:将原始表格数据转换为Pandas DataFrame,这是数据处理的基础结构。
  • 提取月份:把Date列转为日期类型后,用dt.strftime('%b')获取英文月份缩写,再转大写得到JAN/FEB格式的月份标识。
  • 透视表聚合:使用pivot_table实现行(Item)、列(Month)的分组求和,fill_value=0确保无数据的月份显示为0。
  • 调整列顺序:手动指定月份顺序,避免因缩写字母顺序导致列乱序(比如如果有MAR,不会排在FEB前面)。

最终结果

ItemJANFEB
A4020
B400
C010

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:27:12