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

如何使用pandas按指定列聚合并将分组值转换为独立新列

pandas按分类列拆分值转宽表实现方法

你的需求属于典型的长表转宽表操作,优先使用pandas内置的透视方法实现,代码简洁且运行效率最高:

  • 当每个time和mech的组合对应唯一mes值时(也就是你给出的样例数据场景),直接用pivot即可:
import pandas as pd

# 样例数据初始化
df = pd.DataFrame({
    'time': [1,2,3,1,2,3],
    'mes': [50,15,16,17,49,62],
    'mech': ['A','A','A','B','B','B']
})

# 核心转换逻辑
result = df.pivot(
    index='time',
    columns='mech',
    values='mes'
).add_prefix('mes_').reset_index()
  • 如果数据中存在同一个time+mech组合对应多条mes记录的情况,需要指定聚合规则时,换用pivot_table即可,例如取每组第一条值:
result = df.pivot_table(
    index='time',
    columns='mech',
    values='mes',
    aggfunc='first' # 可根据需求替换为sum、mean、max等聚合函数
).add_prefix('mes_').reset_index()

执行后得到的result输出结构和预期完全一致:

time  mes_A  mes_B
0     1     50     17
1     2     15     49
2     3     16     62

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:39:17