我知道这是一个非常常见的错误,但我可以找到我的错误。我有带有周边数据的数据框,例如:
>>>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)
由于某种原因,即使我在函数内使用全局,我仍然收到此错误:
UnboundLocalError:赋值前引用的局部变量“val”
我做错了什么?我预计将其定义为全局将解决问题。
临摹微笑
万千封印
相关分类