Я обрабатываю dataframe pandas df
. В зависимости от определенных условий в пределах df
, я хочу передать df
(1) либо пользовательской функции filter()
, либо (2) - calculate_Result()
.Как передать локальную переменную в пользовательскую функцию в пандах?
Код состояния является:
if df.Col1.str.contains("yes").sum() > 0:
df = filter_df
filter() # Loop
else:
df = calculate_df
calculate_result() # End
Однако я получая UnboundLocalError: local variable referenced before assignment.
я получаю эту ошибку и, когда я поставил df = calculate_df
& df = filter_df
задания в самом определении функций:
def filter():
df = filter_df
...
и
def calculate_results():
df = calculate_df()
...
независимо от того, где я ставлю задания, я получая UnboundLocalError: local variable referenced before assignment.
Как правильно передать локальную переменную для пользовательской функции в панд?
Я не совсем уверен, понимаю ли я. Если выполняются определенные условия в df, я хочу переименовать его и продолжить работу с ним в функции def1. Если условия не выполнены, я хочу продолжить работу с ним в функции def2. Следовательно, имя df должно быть одинаковым (1) при проверке условия и (2) внутри функции. Я хочу передать один и тот же файл данных различным функциям в зависимости от условия в кадре данных. – sudonym
Нет. Это не имеет смысла и не имеет никакого отношения к коду, который вы опубликовали, или к проблеме, которую вы испытываете. «Переименование» переменной в одной функции абсолютно не имеет абсолютно никакого отношения к тому, как передать ее другой функции. Вы должны разместить достаточно кода, чтобы мы могли видеть, что вы на самом деле делаете. –