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

将Pandas DataFrame转换为聚合型嵌套类JSON结构

把Pandas DataFrame转换为聚合型类JSON对象

Got it!我明白你要把给定的DataFrame转换成按group分组,每个分组下包含category与对应value求和结果的类JSON结构,这就给你一步步拆解实现方法:

1. 基础实现(适用于每个Group-Category唯一的情况)

你的原始数据里每个group下的category都是唯一的,所以直接分组后构造嵌套字典即可,最后可以转成标准JSON格式:

首先导入需要的库并定义你的DataFrame:

import pandas as pd
import json

# 你的原始数据
df = pd.DataFrame({
    'group': ["Group 1", "Group 1", "Group 2", "Group 3", "Group 3", "Group 3"],
    'category': ["Category 1.1", "Category 1.2", "Category 2.1", "Category 3.1", "Category 3.2", "Category 3.3"],
    'value': [2, 4, 5, 1, 4, 5]
})

接下来用groupby配合apply构造我们需要的嵌套结构:

# 生成嵌套字典(类JSON结构)
aggregated_dict = df.groupby('group').apply(
    lambda group_data: group_data.set_index('category')['value'].to_dict()
).to_dict()

如果需要输出标准的JSON字符串,用json.dumps格式化:

# 转换为格式化后的JSON字符串
aggregated_json = json.dumps(aggregated_dict, indent=4)
print(aggregated_json)

输出结果

运行后你会得到这样的结构:

{
    "Group 1": {
        "Category 1.1": 2,
        "Category 1.2": 4
    },
    "Group 2": {
        "Category 2.1": 5
    },
    "Group 3": {
        "Category 3.1": 1,
        "Category 3.2": 4,
        "Category 3.3": 5
    }
}

2. 扩展:处理Group-Category重复的情况

如果你的数据里存在同一个group下重复的category,需要对value求和聚合,只需要调整分组逻辑,先按group和category双重分组求和,再转成嵌套结构:

# 先求和聚合,再构造嵌套字典
aggregated_dict_with_sum = df.groupby(['group', 'category'])['value'].sum().unstack().to_dict('index')

这样就能自动把同一组内相同category的value相加,再生成目标结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:45:52