You need to enable JavaScript to run this app. 使用eval调用mean、median计算DataFrame值时报名称未定义错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

使用eval调用mean、median计算DataFrame值时报名称未定义错误如何解决?

错误原因
  • eval(combin)调用逻辑错误:median、mean是Pandas DataFrame对象的内置方法,不存在于当前代码的全局作用域中,直接通过eval在全局搜索对应名称的函数自然会触发name 'median' is not defined报错。
  • 属性调用逻辑错误:即使解决了eval的问题,heartdata.combination的写法也是错误的,点语法后会将combination识别为固定的方法名,不会解析为你之前定义的变量,无法对应到你要调用的均值、中位数方法。
修复方案

不推荐使用eval实现该需求,既存在安全隐患,也容易出现作用域匹配问题,可选择以下两种更稳妥的实现方式:

方法1:使用getattr动态获取对象方法

comb_methods = ['median','mean']
for combin in comb_methods:
    # 直接从DataFrame实例中获取对应名称的方法
    calc_method = getattr(heartdata, combin)
    # 调用方法计算并赋值给新列
    heartdata[combin] = calc_method(axis=1)

方法2:使用Pandas内置的agg方法批量计算(更简洁)

无需手动编写循环,一行代码即可完成多聚合指标的计算:

comb_methods = ['median','mean']
heartdata[comb_methods] = heartdata.agg(comb_methods, axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 00:24:04