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

编写设置指定列nan值的Python函数触发NameError报错如何解决

问题原因

触发NameError: name 'code' is not defined的核心原因是调用函数时传入的第二个参数code是未定义的变量:你需要传递的是字符串格式的列名'code',但漏掉了两侧的引号,Python会将无引号的code识别为变量去全局查找,自然会报未定义错误。
另外你编写的函数本身存在冗余设计问题:函数内部已经直接修改了原表的指定列,同时又返回np.nan,后续你又把返回值再次赋值给merged_table['code'],属于无效重复操作。

修复方案

方案1:省略自定义函数,直接实现需求

如果不需要复用逻辑,一行代码就可以完成指定列设为nan的操作:

# 需提前导入numpy:import numpy as np
merged_table['code'] = np.nan

方案2:保留自定义函数的修复写法

如果需要复用该逻辑,调整函数和调用方式如下:

import numpy as np

def set_nan_for_specific_column(table, column):
    # 直接修改原表指定列为nan,无需返回值
    table[str(column)] = np.nan

# 调用时传入带引号的字符串格式列名
set_nan_for_specific_column(merged_table, 'code')

如果不想修改原表,需要返回新表可以调整为:

def set_nan_for_specific_column(table, column):
    table_copy = table.copy()
    table_copy[str(column)] = np.nan
    return table_copy

# 调用时接收返回的新表
merged_table = set_nan_for_specific_column(merged_table, 'code')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:24:04