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
添加回答
舉報