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

如何对DataFrame按列值分组并实现指定格式转置?

实现长格式DataFrame转宽格式的方案

当然可以实现需求中的转置操作,核心是将PRODUCTNUMBER与Talle proveedor的取值组合作为行的唯一标识,再将ATTRIBUTETYPENAME的各个取值转为列名。以下是用pandas实现的具体步骤:

1. 构造示例长格式数据

先模拟你描述的长格式DataFrame结构:

import pandas as pd

# 示例数据
data = [
    ["ADAC5262", "颜色", "红色"],
    ["ADAC5262", "材质", "棉质"],
    ["ADAC5262", "Talle proveedor", "1"],
    ["ADAC5262", "颜色", "红色"],
    ["ADAC5262", "材质", "棉质"],
    ["ADAC5262", "Talle proveedor", "2"],
    ["ADAC5262", "颜色", "蓝色"],
    ["ADAC5262", "材质", "涤纶"],
    ["ADAC5262", "Talle proveedor", "4126"],
    ["ADAC5263", "颜色", "黑色"],
    ["ADAC5263", "材质", "羊毛"],
    ["ADAC5263", "Talle proveedor", "3"],
]

df_long = pd.DataFrame(data, columns=["PRODUCTNUMBER", "ATTRIBUTETYPENAME", "TEXTVALUE"])

2. 标记每个Talle分组

因为同一PRODUCTNUMBER下的属性是按Talle proveedor分组的,我们先给每个分组添加标记:

# 给每个PRODUCTNUMBER下的不同Talle组添加序号标记
df_long["talle_group"] = (df_long["ATTRIBUTETYPENAME"] == "Talle proveedor").groupby(df_long["PRODUCTNUMBER"]).cumsum()

3. 转置为宽格式

使用pivot_table完成转置,确保每个PRODUCTNUMBER+Talle proveedor组合对应一行:

# 转置操作
df_wide = df_long.pivot_table(
    index=["PRODUCTNUMBER", "talle_group"],
    columns="ATTRIBUTETYPENAME",
    values="TEXTVALUE",
    aggfunc="first"  # 取分组内第一个值,处理重复属性行
).reset_index()

# 移除辅助分组列,调整列顺序
df_wide = df_wide.drop("talle_group", axis=1)
cols = ["PRODUCTNUMBER", "Talle proveedor"] + [col for col in df_wide.columns if col not in ["PRODUCTNUMBER", "Talle proveedor"]]
df_wide = df_wide[cols]

最终结果

转置后的宽格式DataFrame结构如下:

PRODUCTNUMBER Talle proveedor  颜色  材质
0      ADAC5262               1  红色  棉质
1      ADAC5262               2  红色  棉质
2      ADAC5262            4126  蓝色  涤纶
3      ADAC5263               3  黑色  羊毛

如果你的原始数据中,同一PRODUCTNUMBER+Talle proveedor组合下的属性没有重复值,也可以用更简洁的pivot方法替代pivot_table:

df_wide = df_long.pivot(
    index=["PRODUCTNUMBER", "talle_group"],
    columns="ATTRIBUTETYPENAME",
    values="TEXTVALUE"
).reset_index().drop("talle_group", axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:55:15