Вытащить переменную из нескольких функций - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть 4 функции, в которых я манипулирую кадром данных, чтобы создать его новую версию. Мне нужно вытащить последнюю версию настроенного информационного кадра из каждой функции, чтобы использовать их в другом месте. Помните, что df_1 - это не возвращаемый фрейм данных, а промежуточная переменная. Таким образом, выполнение функций не вернет нужную мне переменную.

Например, у меня есть функции ниже, и мне нужно объединить df1 из function_1, df1 из function_2 и df1 из function_3. Тем не менее, когда я запускаю функцию и устанавливаю, она говорит, что df1 не определен. Я мог бы установить его на глобальный, но есть ли другой способ? Спасибо.

def funciton_1():
    df1=df1.apply()
    df1.dropna... 
    df_name=pd.merge(df1, df_name, how='outer')
    #other manipulations df_name
return df_name
def funciton_2():
    df1=df1[[column names]]
    df1.replace('([regex]])','',regex=True,inplace=True)
return df_name
def funciton_3():
    df1=df1[[column names]]
    df1.replace('([regex]])','',regex=True,inplace=True)
    df1=df1.apply()
    df1.dropna...`enter code here`return df_name

1 Ответ

0 голосов
/ 30 сентября 2019

Лучше всего, если вы работаете с методами локальной области видимости и не используете глобальную область видимости. Передайте фрейм данных, который вы хотите изменить, в качестве параметра и верните измененную версию. Таким образом, ваш код становится более модульным, его легко тестировать и отслеживать. Таким образом, вы можете написать:

df1 = function_1(df)
df2 = function_2(df1)
df3 = function_3(df2)

pd.concat([df1, df2, df3])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...