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

如何将Pandas DataFrame转换为以Agent Name为键的多值字典?

问题:将DataFrame转换为指定格式的字典

我有一个包含Agent Name、Team、Available for production、Product Type、Air/Non-Air、PCC key列的DataFrame,具体数据如下:

Agent Name  Team  Available for production Product Type Air/Non-Air      PCC key
0   Anjani Aggarwal APAC                     True        Fresh        AIR 0R0B  0R0B_AIR_Fresh
1   Anjani Aggarwal APAC                     True        Fresh        AIR 4H9B  4H9B_AIR_Fresh
2   Anjani Aggarwal APAC                     True        Fresh        AIR 56HB  56HB_AIR_Fresh
3   Anjani Aggarwal APAC                     True        Fresh         LAND 0R0B  0R0B_LAND_Fresh
4   Anjani Aggarwal APAC                     True        Fresh         LAND B9YJ  B9YJ_LAND_Fresh
5   Anjani Aggarwal APAC                     True        Fresh         LAND G6MJ  G6MJ_LAND_Fresh
6   Rohit Gusain    APAC                     True        Fresh        AIR 0R0B  0R0B_AIR_Fresh
7   Rohit Gusain    APAC                     True        Fresh        AIR 4H9B  4H9B_AIR_Fresh
8   Rohit Gusain    APAC                     True        Fresh        AIR 56HB  56HB_AIR_Fresh
9   Rohit Gusain    APAC                     True        Fresh         LAND 0R0B  0R0B_LAND_Fresh
10  Rohit Gusain    APAC                     True        Fresh         LAND B9YJ  B9YJ_LAND_Fresh
11  Rohit Gusain    APAC                     True        Fresh         LAND G6MJ  G6MJ_LAND_Fresh
12  Sakshi Malhotra APAC                     True        Fresh        AIR 0R0B  0R0B_AIR_Fresh
13  Sakshi Malhotra APAC                     True        Fresh        AIR 4H9B  4H9B_AIR_Fresh
14  Sakshi Malhotra APAC                     True        Fresh        AIR 56HB  56HB_AIR_Fresh
15  Sakshi Malhotra APAC                     True        Fresh         LAND 0R0B  0R0B_LAND_Fresh

需要将其转换为如下格式的字典:

result_dict = {
    'Anjani Aggarwal': ['0R0B_AIR_Fresh','4H9B_AIR_Fresh','56HB_AIR_Fresh','0R0B_LAND_Fresh','B9YJ_LAND_Fresh','G6MJ_LAND_Fresh'],
    'Rohit Gusain': ['0R0B_AIR_Fresh','4H9B_AIR_Fresh','56HB_AIR_Fresh','0R0B_LAND_Fresh','B9YJ_LAND_Fresh','G6MJ_LAND_Fresh']
}

请问该如何实现?


解决方案

可以利用Pandas的分组功能快速实现,核心逻辑是按Agent Name聚合对应的PCC key值,再转为目标字典格式。

方法一:用groupby快速生成(推荐)

这是Pandas的惯用写法,代码简洁且效率高,适合处理大规模数据:

import pandas as pd

# 假设你的DataFrame名为df
full_dict = df.groupby('Agent Name')['PCC key'].apply(list).to_dict()

# 如果只需要示例中的特定Agent,直接筛选即可
target_agents = ['Anjani Aggarwal', 'Rohit Gusain']
result_dict = {agent: full_dict[agent] for agent in target_agents}

方法二:手动遍历构建(适合理解逻辑)

如果想更直观地理解字典构建过程,可以手动遍历DataFrame行:

result_dict = {}
for _, row in df.iterrows():
    agent_name = row['Agent Name']
    pcc_key = row['PCC key']
    # 若Agent不在字典中,先初始化空列表
    if agent_name not in result_dict:
        result_dict[agent_name] = []
    result_dict[agent_name].append(pcc_key)

# 按需筛选目标Agent
target_agents = ['Anjani Aggarwal', 'Rohit Gusain']
result_dict = {k: v for k, v in result_dict.items() if k in target_agents}

说明

  • 方法一依赖Pandas内置的分组逻辑,运行效率远高于手动遍历,优先推荐。
  • 两种方法最终都能得到目标格式的字典,若不需要保留Sakshi Malhotra的数据,通过字典推导式筛选即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:53:16