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

如何将Pandas列值转为带列名的字典并输出双引号格式

Pandas DataFrame结构转换实现方案

需求说明

将包含ID、ValueM2、ValueSqFt三列的原始DataFrame,转换为包含ID、DataMetric(嵌套字典存储公制单位值)、DataImperial(嵌套字典存储英制单位值)的新DataFrame,且输出结果需使用双引号。

实现代码

import pandas as pd

# 初始化原始DataFrame
df = pd.DataFrame({
    "ID": ["ID no1", "ID no2", "ID no3"],
    "ValueM2": ["11998","11076", "12025"],
    "ValueSqFt": [129145.39718,119221.07178, 129.43600276]
})

# 构造目标结构的新DataFrame
dfnew = pd.DataFrame({
    "ID": df["ID"],
    # 将ValueM2列转换为嵌套字典格式
    "DataMetric": df["ValueM2"].apply(lambda val: {"ValueM2": val}),
    # 将ValueSqFt数值转字符串后,再转换为嵌套字典格式
    "DataImperial": df["ValueSqFt"].apply(lambda val: {"ValueSqFt": str(val)})
})

# 输出带双引号的格式化结果
print(dfnew.to_json(orient='records', indent=2))

代码说明

  1. 构造嵌套字典列:通过apply结合lambda函数,将每一行的单个字段值封装为目标要求的字典结构;
  2. 类型转换:针对ValueSqFt列,将数值类型转为字符串,匹配目标结构中的字符串格式要求;
  3. 双引号输出:使用to_json方法生成标准JSON格式结果,自动使用双引号,同时indent=2保证输出格式清晰易读。

输出结果示例

[
  {
    "ID": "ID no1",
    "DataMetric": {
      "ValueM2": "11998"
    },
    "DataImperial": {
      "ValueSqFt": "129145.39718"
    }
  },
  {
    "ID": "ID no2",
    "DataMetric": {
      "ValueM2": "11076"
    },
    "DataImperial": {
      "ValueSqFt": "119221.07178"
    }
  },
  {
    "ID": "ID no3",
    "DataMetric": {
      "ValueM2": "12025"
    },
    "DataImperial": {
      "ValueSqFt": "129.43600276"
    }
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:31:12