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

根据行唯一值创建列:如何对数据集执行pivot操作实现表结构转换

实现方法

你要的是典型的长表转宽表操作,pandas有多种方式可以实现:

方法1:直接使用pivot方法(无重复组合时首选,最适配你的需求)

直接指定行索引、列标题来源、填充值字段即可,代码如下:

# 核心代码,df为你的原始数据集
result = df.pivot(index='B', columns='A', values='C')
# 若不需要保留列名的标识"A",可额外添加一行代码去掉列名前缀
result.columns.name = None

方法2:pivot_table方法(适合实际数据存在重复的A+B组合场景)

如果你的实际数据中存在同一个A值+B值对应多个C值的情况,可以用pivot_table指定聚合规则:

# aggfunc可根据你的需求替换为'mean'/'max'/'min'等聚合函数
result = pd.pivot_table(df, index='B', columns='A', values='C', aggfunc='sum')
result.columns.name = None

方法3:set_index + unstack组合实现

result = df.set_index(['B', 'A'])['C'].unstack('A')
result.columns.name = None

以下是完整可运行的测试代码,你可以直接运行验证效果:

import pandas as pd

# 构造示例数据集
data = {
    "A": [22,22,22,22,23,23,23,23,24,24,24,24],
    "B": [1,2,3,4,1,2,3,4,1,2,3,4],
    "C": [52,14,11,9,20,15,8,60,45,12,40,52]
}
df = pd.DataFrame(data)

# 转换操作
result = df.pivot(index='B', columns='A', values='C')
result.columns.name = None

print(result)

运行后输出的结果和你要求的结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:36:05