Форматирование нескольких фреймов данных с помощью функции, возвращающей правильный вывод, но затем вызывающей старую переменную - PullRequest
0 голосов
/ 25 мая 2020

Я постоянно сталкиваюсь с этой проблемой и не могу найти решения. У меня есть 10 отдельных фреймов данных, и я пытаюсь использовать одну функцию, чтобы отформатировать их все сразу. При запуске функции в Jupyter Notebook она показывает мне, что происходит правильное форматирование, показывая правильно отформатированный последний фрейм данных (df10, odds_sb). Однако, когда я снова вызываю то, что должно быть одним из вновь отформатированных фреймов данных, возвращается старый формат.

#Create function to format odds dataframes
def format_odds(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10):
    for idx, df in enumerate((df1, df2, df3, df4, df5, df6, df7, df8, df9, df10)):
        df = df.T
        df = df.add_suffix(idx)
    return df

# Run format odds function to transpose and add number to each column
# This shows that they were correctly formatted
format_odds(odds_opening, odds_bovada, odds_betonline, odds_intertops, odds_sbtng, 
            odds_betnow, odds_gtbets, odds_skybook, odds_5dimes, odds_sb)

#Back to old formatting for some reason
odds_opening

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 25 мая 2020

Вам нужно создать временную таблицу и добавить в нее каждый df .. также вы должны вызвать перечисление в списке ... Обратите внимание, что когда вы добавляете суффикс, имена столбцов будут другими, и добавление не будет добавлять строки, но столбцы. Но в любом случае следующий код продемонстрирует идею того, как добавлять фреймы данных с одинаковым форматом (одинаковое количество / имена / тип столбцов)

def format_odds(df1, df2, df3):
    res = pd.DataFrame()
    for idx, df in enumerate([df1, df2]):
        df = df.T
        df = df.add_suffix(idx)
        res = res.append(df)
    return res

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...