使用变量字符串创建python数据框

时间:2018-11-09 11:05:06

标签: python string dataframe

我具有运行逻辑回归模型的功能。我想永久保存(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

1 个答案:

答案 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'