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

如何为大型DataFrame批量生成关联Name列的命名字典

批量生成以Name列为键的列字典

需求背景

我有一个大型DataFrame(含100+列、数千行),需要为每一列生成独立字典,字典命名规则为dict+列名,字典的键是Name列的值,对应值为该列的对应行数据。以下是简化的示例场景:

示例数据

data = {'Name': ['James', 'Miriam', 'Josh', 'Peter'],
        'ID': [11,12,13,14],
        'Tester': [0,0,1,1],
       'Developer':[1,0,0,1],
       'Architect':[0,1,0,1],
       'Engineer':[1,1,0,0],
       'Cyber_security':[1,0,0,0],
       'IT_support':[0,1,0,0],
       'Business_analyst':[0,0,0,1]}

生成的DataFrame:

Name    ID  Tester  Developer   Architect   Engineer    Cyber_security  IT_support  Business_analyst
0   James   11  0       1           0           1           1               0           0
1   Miriam  12  0       0           1           1           0               1           0
2   Josh    13  1       0           0           0           0               0           0
3   Peter   14  1       1           1           0           0               0           1

当前手动实现方式

目前我通过逐列编写代码生成字典,但面对大量列时代码过于冗长:

lstName = list(df.Name)
dictTester = dict(zip(list(df.Name), list(df.Tester)))
dictDeveloper = dict(zip(list(df.Name), list(df.Developer)))
# ... 其余列的重复代码

批量解决方案

可以通过遍历DataFrame的列名,利用globals()动态生成变量,实现批量创建字典:

import pandas as pd

# 加载DataFrame
df = pd.DataFrame(data)

# 遍历所有列,跳过Name列(如需包含可移除判断)
for col in df.columns:
    if col == 'Name':
        continue
    # 生成符合规则的字典变量名
    var_name = f'dict{col}'
    # 动态创建字典并绑定为全局变量
    globals()[var_name] = dict(zip(df['Name'], df[col]))

说明

  • 代码会自动为每一列(除Name外)生成dict+列名格式的字典,比如dictID、dictCyber_security等,可直接独立调用
  • 若需要包含Name列本身,删除if col == 'Name': continue即可

验证示例

运行代码后,调用dictTester会得到:

{'James': 0, 'Miriam': 0, 'Josh': 1, 'Peter': 1}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:30:44