Создайте фрейм данных Python, используя строку переменных - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть функция для запуска модели логистической регрессии. Я хотел бы навсегда сохранить созданный в (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) = coeff ^ Ошибка синтаксиса: невозможно присвоить оператору

что-то не так с тем, как я пытаюсь создать фрейм данных?

"cf_" + str(ind) = cf

1 Ответ

0 голосов
/ 09 ноября 2018

Да. Эта строка не создает новую переменную:

"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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...