Как сохранить выходные данные функции в отдельных фреймах данных? - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь обработать несколько фреймов данных с помощью функции и сохранить результат в отдельных соответствующих фреймах данных.Однако, похоже, что функция не хранит переменную правильно.

Вот функция:

def customize_df(in_df,out_df,old_col_val,new_col_val,vol):
    out_df = in_df.copy()
    # Adjust hemisphere contigent values
    if 'lh' in out_df:
        out_df.columns = out_df.columns.str.replace('lh_', 'L_')
    if 'rh' in out_df:
        out_df.columns = out_df.columns.str.replace('rh_', 'R_')
    # Adjust column names.
    out_df.columns = out_df.columns.str.replace(old_col_val, new_col_val)
    # Change the name of the first column to ID.
    out_df.columns = out_df.columns.str.replace(out_df.columns[0], "ID")
    # Make Volumetric eTIV adjustments
    if vol==True:
        df_raw = out_df.copy()
        df_raw.columns = df_raw.columns.str.replace('_Vol', '_Vol_Raw')
        df_raw.columns = df_raw.columns.str.replace('_volume', '_Vol_Raw')
        df_raw = pd.DataFrame(data = df_raw, columns= df_raw.columns)
        df2 = out_df.copy()
        df2.columns = df2.columns.str.replace('_volume', '_Vol_Adj')
        df2 = pd.DataFrame(data = df2, columns= df2.columns)
        cols = out_df.columns[out_df.columns.str.contains('_Adj')].tolist()
        for col in cols:
            df2[col] = df2[col].div(df2['eTIV'], axis=0)
        df_combined= df_raw.join(df2, rsuffix='_DROP')
        cols = df_combined.columns[df_combined.columns.str.contains('_DROP')].tolist()
        for col in cols:
            df_combined = df_combined.drop([col], axis=1)
        out_df = df_combined.copy()
        return out_df
    elif vol==False:
        return out_df

Она работает, как и предполагалось, однако, когда я запускаю функцию с несколькими последовательными входами,кажется, что результаты не сохраняются в "out_df", как предполагалось.

Вот команды:

customize_df(lh_exvivo_Area,'lh_ExV_Area','_exvivo_area','_ExV_Area',vol=True)

customize_df(Sub_GM_Vol,'Sub_GM_Vol','','_Sub_GM_Vol',vol=True)

customize_df(Sub_WM_Vol,'Sub_WM_Vol','','_Sub_WM_Vol',vol=True)

Когда я проверяю это, вводя имя желаемого результатафрейм данных, результата нет.

lh_ExV_Area.head()

NameError: name 'lh_ExV_Area' is not defined
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...