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

如何使用pandas将指定JSON按固定列透视转换为目标结构

解决方案

核心实现逻辑

使用pandas内置的melt方法即可完成宽表转长表的需求,无需额外自定义复杂逻辑。

操作步骤

  1. 读取JSON文件为DataFrame,若JSON为嵌套结构可先使用pd.json_normalize扁平化处理
import pandas as pd
import json

# 读取扁平结构JSON文件
df = pd.read_json("你的JSON文件路径.json")
# 若为嵌套结构JSON,替换为以下代码展开所有嵌套字段
# with open("你的JSON文件路径.json", "r", encoding="utf-8") as f:
#     raw_data = json.load(f)
# df = pd.json_normalize(raw_data)
  1. 定义固定保留列,执行结构转换
# 定义需要保留的固定字段
id_cols = ["eTask_ID", "Organization", "BidID", "Project"]
# 宽表转长表
df_result = df.melt(
    id_vars=id_cols,
    var_name="Attribute",
    value_name="AttrValue"
)
# 可选操作:去除AttrValue为空的无效记录
df_result = df_result.dropna(subset=["AttrValue"]).reset_index(drop=True)

效果示例

原始输入数据结构样例
| eTask_ID | Organization | BidID | Project | 合同金额 | 交付周期 |
|----------|--------------|-------|---------|----------|----------|
| T1001 | 城建集团 | B2301 | 地铁4号线| 12000000 | 180天 |
| T1002 | 建工集团 | B2302 | 跨海大桥 | 35000000 | 360天 |

转换后输出结构
| eTask_ID | Organization | BidID | Project | Attribute | AttrValue |
|----------|--------------|-------|---------|-----------|-----------|
| T1001 | 城建集团 | B2301 | 地铁4号线| 合同金额 | 12000000 |
| T1002 | 建工集团 | B2302 | 跨海大桥 | 合同金额 | 35000000 |
| T1001 | 城建集团 | B2301 | 地铁4号线| 交付周期 | 180天 |
| T1002 | 建工集团 | B2302 | 跨海大桥 | 交付周期 | 360天 |


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:09:05