2 回答
TA贡献1982条经验 获得超2个赞
尝试在代码中添加另一种场景,其中
if row['perimeter'] == per_median: 然后为 val 设置一些值。
或者,如果您不想处理此问题,请在使用之前尝试为 val 分配默认值。
TA贡献1891条经验 获得超3个赞
缺少处理row['perimeter']等于的情况,因此未设置变量。per_medianval
编辑代码来处理这种情况:
import pandas as pd
import numpy as np
df = pd.DataFrame({'name':['al', 'dl', 'yl', 'pl', 'kl'],
'perimeter':[24.5, 43.7, 1222.4, 213.2, 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'
else:
val = 'equals'
return val
df['perimeter_warning'] = df.apply(z,axis=1)
print(df)
输出:
name perimeter perimeter_warning
0 al 24.5 no
1 dl 43.7 no
2 yl 1222.4 yes
3 pl 213.2 yes
4 kl 120.0 equals
添加回答
举报