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

pandas如何分组创建包含多列的多层嵌套字典

Pandas 多维度分组生成指定嵌套字典方案

你需要生成{Age:{Rating:[Data], Rating:[Data]}结构的嵌套字典,只需在原有单维度分组逻辑上调整分组键和输出格式即可,无需额外写循环做二次处理。

可直接运行的实现代码

# 核心实现,输出完全匹配你需要的嵌套结构
nested_dict = df.groupby(["Age", "Rating"])["Data"].agg(list).unstack().to_dict(orient="index")

针对你给出的测试样例,上述代码运行后输出结果为:

{10: {10: ["Pole"], 5: ["Carl"]}}

和你预期的结构完全一致。

逻辑说明

  • 分组阶段同时传入两个分组键:外层维度Age作为第一分组键,内层维度Rating作为第二分组键,聚合时将同分组下的Data列值合并为列表
  • 调用unstack()将二级索引Rating转换为列,把双层索引的聚合结果转为宽表格式
  • 调用to_dict(orient="index")按行生成字典,行索引(即Age值)作为外层字典的键,每一行内的「Rating值: Data列表」键值对作为内层字典内容

可选优化

如果你的数据中存在部分Age下没有对应Rating值的空组合,默认会生成NaN填充的键值对,可以加一步空值过滤避免脏数据:

nested_dict = df.groupby(["Age", "Rating"])["Data"].agg(list).unstack().dropna(how="all", axis=1).to_dict(orient="index")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:06:35