我具有运行逻辑回归模型的功能。我想永久保存(cf)中生成的数据框并修改其名称。
def model(ind, dep):
global cf
ind.fillna(0)
#some modelling code
#create confuson matix
cf = pd.DataFrame(confusion_matrix(y_train, y_pred))
cf.index = models
cf.columns = models
print(cf)
cf.plot.barh()
"cf_" + str(ind) = cf
return "cf_" + str(ind)
model(X_tv, y_combo)
model(X_tv_chan, y_combo)
我收到此错误
文件“”,第64行 “ cf_” + str(ind)=系数 ^ SyntaxError:无法分配给运算符
我尝试创建数据框的方式有问题吗?
"cf_" + str(ind) = cf
答案 0 :(得分:1)
是的。该行不会创建新变量:
"cf_" + str(ind) = cf
字符串是不可变的。您也不能“将数据帧分配给字符串”,我什至不确定这是要实现什么。避免使用global
变量也是一种好习惯。
只需返回您的数据框并分配一个明确的变量名即可。如果您打算更改变量名,请使用字典和dict.pop
:
def model(ind, dep):
# ...
cf = pd.DataFrame(confusion_matrix(y_train, y_pred))
cf.index = models
cf.columns = models
# ...
return cf
dfs = {}
dfs['ind'] = model(X_tv, y_combo) # identify dataframe with key 'ind'
dfs['cf_ind'] = dfs.pop('ind') # rename identifier to 'cf_ind'