我有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.
不知道我做错了什么?在
未在changecolumnnames之外定义x
提供r作为changecolumnnames的输入。r是changecolumnnames之外的x
r
是一个字符串,您试图将其作为变量传递。在您需要将您的函数改为
hangecolumnnames(zillrentyears, "r")
,然后在该函数中,您可以在不使用str
的情况下调用returnlist.append(i + x)
。在相关问题 更多 >
编程相关推荐