I know this is very cmmon error but I can find my error. I have dataframe with perimeter data ,e.g:
>>>name perimeter
0 al 24.5
1 dl 43.7
2 yl 1222.4
3 pl 213.2
4 kl 120
...
I want to check what is the median perimeter and then add new column according to the perimeter median value. I define the median before the function and then I define the median as global inside the function:
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)
for some reason, even though I use global inside the function, I keep getting this error:
UnboundLocalError: local variable 'val' referenced before assignment
What do I do wrong? I was excpected that define it as global will solve the problem.