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

Python中如何通过dataframe取出的字符串名称访问同名对象的属性

解决方案

核心逻辑是通过字符串形式的人名,匹配到你预先定义的同名实例对象,再调用getattr获取属性,两种常用实现方式如下:

  • 方案1:直接从当前作用域获取对应变量(适合小型脚本场景)
    如果你的人员实例定义在全局作用域,可通过globals()内置函数获取全局变量字典,用人名字符串作为key取出对应实例:
person_name = df._get_value(n, 'People')
person_obj = globals()[person_name]
age = getattr(person_obj, 'Age')

如果实例定义在当前函数的局部作用域,将globals()替换为locals()即可。

  • 方案2:预先构建人名字典映射(更推荐,适合正式项目)
    直接操作作用域变量存在误取无关变量、冲突风险更高的问题,更稳妥的方式是提前把所有人员实例存入统一的映射字典:
# 提前构建人名到实例的映射,key为人名,value为对应的实例对象
person_map = {
    "张三": zhangsan,
    "李四": lisi,
    # 补充所有人员的映射关系
}

# 遍历取值逻辑
person_name = df._get_value(n, 'People')
person_obj = person_map[person_name]
age = getattr(person_obj, 'Age')

两种方案均可以在取值步骤增加if person_name in 目标字典的判断,避免出现KeyError异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:12:03