You need to enable JavaScript to run this app. DataFrame长表转宽表:将指定列值转为新列实现数据重构
优惠活动
大模型
产品
解决方案
定价
更多

DataFrame长表转宽表:将指定列值转为新列实现数据重构

数据转换实现方案

你需要的是典型的长表转宽表操作,使用Pandas的pivot方法即可快速实现,完整操作步骤如下:


1. 前置准备(构造测试数据)

如果是你自己的真实数据,可跳过这一步,直接读取数据到DataFrame即可:

import pandas as pd

# 构造和你示例一致的原始DataFrame
df = pd.DataFrame({
    'Time': [0, 1, 0, 1],
    'Image': ['A1', 'A1', 'B1', 'B1'],
    'Mean': [1, 2, 3, 4]
})

2. 核心转换代码

# 执行长表转宽表
res = df.pivot(
    index='Time',  # 指定保持为行的列
    columns='Image',  # 指定要展开为新列的列
    values='Mean'  # 指定填充到新列的数值来源
).reset_index()  # 将Time从索引恢复为普通列

# 移除自动生成的多余列索引名,匹配预期输出格式
res = res.rename_axis(columns=None)

3. 输出结果验证

转换后的res内容如下,完全符合你的预期:

TimeA1B1
013
124

可选方案(存在重复值场景)

如果你的原始数据中存在同一个Time和Image组合对应多个Mean值的情况,可以使用pivot_table方法指定聚合规则,比如对重复值求均值:

res = df.pivot_table(
    index='Time',
    columns='Image',
    values='Mean',
    aggfunc='mean'  # 可根据需求替换为sum、max等聚合函数
).reset_index().rename_axis(columns=None)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 07:48:03