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

如何将Pandas按Term分组的DataFrame字典转为学生ID列表字典?

解决方法:一键生成「学期-学生ID列表」字典

你不需要先生成分组后的DataFrame字典再逐个转换,直接通过groupby结合apply(list)(或agg(list))再转字典就能一步到位,完全符合DRY原则:

完整示例代码

import pandas as pd
data = {'UW ID':[1, 2, 3, 4, 5, 6, 7, 8, 9],
        'Term':[201001, 201101, 201201, 201201, 201001,201001, 
201101, 201201, 201201 ]}
df = pd.DataFrame(data)

# 直接生成目标字典
term_id_dict = df.groupby('Term')['UW ID'].apply(list).to_dict()

# 验证结果
print(term_id_dict)
# 输出:{201001: [1, 5, 6], 201101: [2, 7], 201201: [3, 4, 8, 9]}

代码说明

  • df.groupby('Term')['UW ID']:按Term字段分组,仅保留需要的UW ID列
  • .apply(list):将每个分组内的UW ID直接转换为列表
  • .to_dict():将分组后的Series转换为字典,键为学期值,值为对应学生ID列表

你也可以用agg(list)替代apply(list),效果完全相同:

term_id_dict = df.groupby('Term')['UW ID'].agg(list).to_dict()

这种方法无需手动遍历分组后的DataFrame,一次性完成转换,既简洁又避免重复代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:22:15