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

如何通过调整DataFrame层级将指定列嵌套为JSON对象?

解决方法

可以通过给DataFrame新增嵌套列、移除原列的方式实现,全程在DataFrame层级操作,无需直接处理JSON:

步骤说明

  1. 明确需要嵌套的目标列(ON、1W、2W),将这些列打包成新的myObj列,每行的myObj值是包含对应列键值对的字典。
  2. 删除原来的ON、1W、2W列。
  3. 执行你原本的JSON转换逻辑即可。

代码示例

假设你的meanCorrel结构如下(以date、category作为非嵌套列示例):

import pandas as pd

# 模拟示例DataFrame
data = {
    'date': ['2024-01-01', '2024-01-02'],
    'category': ['A', 'B'],
    'ON': [0.8, 0.7],
    '1W': [0.6, 0.5],
    '2W': [0.4, 0.3]
}
meanCorrel = pd.DataFrame(data).set_index(['date', 'category'])

执行以下代码调整层级:

# 定义需要嵌套的列
nest_cols = ['ON', '1W', '2W']

# 新增myObj列并移除原嵌套列
meanCorrel_adjusted = meanCorrel.reset_index().assign(
    myObj=lambda df: df[nest_cols].to_dict('records')
).drop(nest_cols, axis=1)

# 转换为目标格式JSON数组
result_json = meanCorrel_adjusted.to_json(orient='records')

结果验证

转换后的JSON结构如下:

[
    {
        "date": "2024-01-01",
        "category": "A",
        "myObj": {"ON": 0.8, "1W": 0.6, "2W": 0.4}
    },
    {
        "date": "2024-01-02",
        "category": "B",
        "myObj": {"ON": 0.7, "1W": 0.5, "2W": 0.3}
    }
]

优化说明

  • 使用assign+lambda的链式写法更简洁,可读性强。
  • to_dict('records')批量将行转为字典,比逐行apply处理效率更高,适合大数据量场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:14:56