You need to enable JavaScript to run this app. Pandas 如何从多级groupby结果提取层级映射信息
优惠活动
大模型
产品
解决方案
定价
更多

Pandas 如何从多级groupby结果提取层级映射信息

实现方法

你之前的卡点源于对MultiIndex结构的使用误区:带两层索引的Series完全可以直接按索引层级做二次分组,根本不需要通过reset_index把索引拆成普通列、再做冗余的DataFrame转换。之前尝试失败,大概率是在拿到聚合结果后先执行了reset_index破坏了原有索引结构,反而绕了远路。

核心代码两步就能完成,完全复用你已经验证正确的聚合逻辑:

  1. 先保留两级聚合结果,不要提前破坏MultiIndex结构:
    s = df.groupby(['barcode','box_number'])['serials'].apply(' '.join)
    
  2. 直接按barcode所在的索引层级(也就是MultiIndex的0层)做分组,把每个barcode下的子序列转成box_number为key、拼接serials为value的字典,最后整体转成目标结构:
    result = s.groupby(level=0).apply(lambda g: g.to_dict()).to_dict()
    

执行后得到的result完全匹配你需要的结构:

{'1000': {'10': '800 801', '11': '802'},
 '2000': {'12': '803 804 805 806'},
 '3000': {'13': '807', '14': '808', '15': '809'}}

可以直接拿来生成层级XML结构,不需要额外的格式清洗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 20:36:06