名称错误:使用函数时未定义名称“x”

2024-06-26 00:13:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个数据帧,它们有相同的列名,我正在合并它们。第一列是我想要的数据帧。其余的列是years,我想在每个years中添加一个字母来区分数据帧。我可以手动完成,没有任何问题。但是当我试图定义一个函数时,我得到了以下错误

NameError: name 'x' is not defined.

这是我在没有定义函数的情况下的初步尝试。dfyears是我试图更改列名称的数据帧。第一列“City_State”,我想保持不变,其余的列我想根据数据帧在后面添加一个字母。在

dfyearlist = (dfyears.columns[1:].values.tolist())
dfcols = [(dfyears.columns[0])]
for i in dfyearlist:
    dfcols.append(i + 'r')
dfyears.columns = dfcols

以下是我输出的前3行:

^{pr2}$

但当我试图定义一个函数时:

def changecolumnnames(s, x):
    templist = [s.columns[1:].values.tolist()]
    returnlist = [(s.columns[0])]
    for i in templist:
        returnlist.append(i + str(x))
    s.columns = returnlist 

zillrentyears = changecolumnnames(zillrentyears, r)

我得到:

NameError: name 'r' is not defined.

不知道我做错了什么?在


Tags: columns数据函数name定义is字母not
2条回答

未在changecolumnnames之外定义x

提供r作为changecolumnnames的输入。r是changecolumnnames之外的x

r是一个字符串,您试图将其作为变量传递。在

您需要将您的函数改为hangecolumnnames(zillrentyears, "r"),然后在该函数中,您可以在不使用str的情况下调用returnlist.append(i + x)。在

相关问题 更多 >