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

Python无需聚合的groupby操作:如何按唯一月份分组提取对应观测数据

实现方案

你需要的10行(年份)×12列(月份)的宽表格式,无需手动遍历groupby结果拼接,Pandas提供了更简洁的内置方法实现:

方法1:直接使用pivot转换(推荐)

假设你的数据包含year(年份列)、month(月份列)、以及你要提取的观测值列(示例中以value指代,替换为你实际的列名即可),一行代码即可生成目标表格:

# 无重复年月组合时直接使用pivot
result = data.pivot(index='year', columns='month', values='value')

如果同一个年月下存在多条观测值,需要先聚合(比如取均值、求和),使用pivot_table指定聚合规则即可:

# 示例为取同年月下观测值的均值,aggfunc可替换为sum、count等你需要的聚合函数
result = data.pivot_table(index='year', columns='month', values='value', aggfunc='mean')

方法2:基于你现有groupby逻辑修改

如果你需要沿用当前的分组遍历逻辑,可参考如下修改后的代码:

import pandas as pd

data1 = data.groupby(by='month')
result = pd.DataFrame()

for month, group in data1:
    # 把当前月份分组的观测值按年份为索引加入结果表的对应列
    result[month] = group.set_index('year')['value']

生成结果后直接打印result即可查看目标格式的表格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:48:03