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

如何将Pandas DataFrame转换为指定结构的嵌套字典?

Pandas DataFrame转指定嵌套字典的实现方案

原始DataFrame

import pandas as pd

df = pd.DataFrame({
    'school_name': ['ABC', 'ABC', 'ABC', 'DEF', 'DEF', 'DEF', 'XYZ', 'XYZ'],
    'student_name': ['joey', 'andrew', 'phill', 'joey1', 'andrew1', 'phill1', 'joey2', 'phill2'],
    'address': ['london', 'califor', 'los A', 'london1', 'califor1', 'los A1', 'autria', 'autria'],
    'phone': [5685, 5688, 5687, 56858, 56878, 56987, 4455, 6655]
})
print(df)

输出:

school_name student_name   address  phone
0         ABC         joey    london   5685
1         ABC       andrew   califor   5688
2         ABC        phill     los A   5687
3         DEF        joey1   london1  56858
4         DEF      andrew1  califor1  56878
5         DEF       phill1    los A1  56987
6         XYZ        joey2    autria   4455
7         XYZ       phill2    autria   6655

目标嵌套字典结构

{
    'ABC': {'student_name': ['joey', 'andrew', 'phill'], 
            'address': ['london', 'califor', 'los A'], 
            'phone': [5685, 5688, 5687]}, 
    'DEF': {'student_name': ['joey1', 'andrew1', 'phill1'], 
            'address': ['london1', 'califor1', 'los A1'], 
            'phone': [56858, 56878, 56987]},
    'XYZ': {'student_name': ['joey2', 'phill2'],
            'address': ['autria', 'autria'], 
            'phone': [4455, 6655]}
}

解决方法

方法1:一行代码实现(groupby + to_dict)

利用Pandas的groupby分组后,结合apply和to_dict('list')直接生成目标结构:

result = df.groupby('school_name').apply(lambda x: x.drop('school_name', axis=1).to_dict('list')).to_dict()
  • 逻辑说明:按school_name分组后,对每个分组删除school_name列,再将分组内的每一列转为列表形式的字典,最后把分组结果整体转为字典。

方法2:分步实现(更直观)

如果觉得lambda不够直观,可以用循环遍历分组:

result = {}
# 按school_name分组
for school, group_df in df.groupby('school_name'):
    # 移除分组列,将剩余列转为列表字典
    result[school] = group_df.drop('school_name', axis=1).to_dict('list')

常见问题说明

如果之前用列表推导式结合groupby没成功,大概率是没正确处理分组后的DataFrame结构:比如没有移除school_name列,或者错误地使用了分组后的索引/键值,导致生成的字典结构不符合预期。上述两种方法都明确处理了分组列的移除,确保输出结构匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:35:31