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

如何将Pandas分组聚合后的DataFrame转为易用的字典格式?

解决方案

方法1:生成三层嵌套字典(最直观易用)

先把聚合后的多层索引重置为普通列,再通过循环构建嵌套结构,这样可以直接通过「产品→年份→月份」的层级快速取值:

# 重置多层索引为普通列
df_sums_reset = df_sums.reset_index()

# 构建嵌套字典
quantity_dict = {}
for _, row in df_sums_reset.iterrows():
    prod = row["Product"]
    yr = row["Year"]
    mth = row["Month"]
    qty = row["Quantity"]
    
    if prod not in quantity_dict:
        quantity_dict[prod] = {}
    if yr not in quantity_dict[prod]:
        quantity_dict[prod][yr] = {}
    quantity_dict[prod][yr][mth] = qty

使用示例:

# 直接获取指定产品、年份、月份的销量
print(quantity_dict["Product X"][2022][10])

方法2:元组键字典(简洁高效)

如果能接受用元组作为字典的键,可以直接提取Quantity列转字典,省去重置索引的步骤:

quantity_dict = df_sums["Quantity"].to_dict()

使用示例:

# 通过元组键直接取值
print(quantity_dict[("Product X", 2022, 10)])

方法3:JSON格式(跨场景友好)

如果需要在Pandas以外的环境(比如其他编程语言)使用,转成JSON格式最通用:

import json

# 先重置索引,再转成JSON数组
df_sums_reset = df_sums.reset_index()
json_result = df_sums_reset.to_json(orient="records")

# 若需要Python字典列表,可解析JSON字符串
result_list = json.loads(json_result)

得到的是包含所有记录的列表,每个元素是{"Product": "...", "Year": "...", "Month": "...", "Quantity": "..."}格式的字典,方便遍历或筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:20:35