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

如何按年月对DataFrame数据求和并生成指定格式透视表

解决方案

可以使用 Pandas 的日期处理与透视表功能实现需求,步骤如下:

1. 转换日期格式

首先确保 DATE 列是 datetime 类型:

import pandas as pd

# 转换DATE列为datetime格式
df['DATE'] = pd.to_datetime(df['DATE'])

2. 提取年份和月份名称

从日期中提取年份和月份全称:

# 提取年份
df['year'] = df['DATE'].dt.year
# 提取月份名称(如January、February)
df['month'] = df['DATE'].dt.month_name()

3. 生成目标透视表

按年份和月份分组求和,再转换为行列交叉的格式:

# 分组计算月度总和并转为透视表,缺失值填充为0
result = df.groupby(['year', 'month'])['X.'].sum().unstack(fill_value=0)

# 强制月份按自然顺序排列
month_order = ['January', 'February', 'March', 'April', 'May', 'June', 
               'July', 'August', 'September', 'October', 'November', 'December']
result = result.reindex(columns=month_order)

结果示例

处理后的数据表结构如下:

yearJanuaryFebruary...December
198200...-0.5
198300...0
20220.80...0

关键说明

  • groupby(['year', 'month'])['X.'].sum():计算每个年份-月份组合的X.列总和
  • unstack(fill_value=0):将行索引中的月份转为列,缺失的月份值填充为0
  • reindex:确保月份按从一月到十二月的自然顺序排列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:01:41