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

基于Doc. #列转置Pandas数据集未果,求实现目标横向格式方案

解决DataFrame按Doc.#转置为带New/Old列的横向结构

核心方法:使用pivot实现数据重塑

直接用transpose()或单纯groupby()无法实现目标,需要通过**透视(pivot)**将长格式数据转为宽格式,同时保留New/Old值的对应关系。

步骤示例(基于pandas)

  1. 导入依赖
import pandas as pd
  1. 模拟匹配你的原始数据结构
df = pd.DataFrame({
    "Doc. #": [123, 123, 456, 456],
    "字段名称": ["客户编码", "客户名称", "客户编码", "客户名称"],
    "New": ["A001", "张三", "B001", "李四"],
    "Old": ["A000", "张四", "B000", "李五"]
})
  1. 执行透视与列名整理
# 按Doc.#分组,以字段名称为列,New/Old为值进行透视
pivoted = df.pivot(index="Doc. #", columns="字段名称", values=["New", "Old"])
# 重命名列,格式改为「字段名称_New」「字段名称_Old」
pivoted.columns = [f"{field}_{val_type}" for val_type, field in pivoted.columns]
# 重置索引,让Doc.#回到普通列
result = pivoted.reset_index()

执行后得到的result就是你需要的横向结构:每个Doc. #对应一行,每个字段分别对应字段名称_New和字段名称_Old两列。

关键说明

  • transpose()仅做行列互换,无法按业务维度(Doc.#、字段)重组数据,因此不适用。
  • groupby()本身是分组聚合工具,需要结合透视/重塑操作才能实现宽表转换,单独使用无法达到目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:53:33