Я знаю, что это очень ошибка cmmon, но я могу найти свою ошибку. У меня есть кадр данных с данными периметра, например:
>>>name perimeter
0 al 24.5
1 dl 43.7
2 yl 1222.4
3 pl 213.2
4 kl 120
...
Я хочу проверить средний периметр, а затем добавить новый столбец в соответствии со средним значением периметра. Я определяю медиану перед функцией, а затем определяю медиану как глобальную внутри функции:
per_median=df['perimeter'].median()
def z(row):
global per_median
if row['perimeter'] > per_median:
val = 'yes'
elif row['perimeter'] < per_median:
val = 'no'
return val
df['perimeter_warning'] = df.apply(z,axis=1)
по какой-то причине, хотя я использую global внутри функции, я продолжаю получать эту ошибку:
UnboundLocalError: ссылка на локальную переменную 'val' перед назначением
Что я делаю неправильно? Я ожидал, что определение его как глобального решит проблему.