【发布时间】:2019-08-30 17:02:21
【问题描述】:
我正在尝试将一个功能应用于列,但出现错误
Name weight
Person1 30
Person2 70
我的代码在下面
def classify(x):
if 0 <= x < 20:
y = "0 to 20%"
if 20 < x < 40:
y = "20 to 40%"
if 40 < x < 60:
y = "40 to 60%"
if 60 < x < 80:
y = "60 to 80%"
if 80 < x <= 100:
y = "80 to 100%"
return ( y)
df['Target'] = df['weight'].apply(lambda x: classify(x)) 抛出本地绑定错误
如果我使用 print 而不是 return 我可以看到输出
预计结束
Name weight Target
Person1 30 20 to 40
Person2 70 60 to 80
【问题讨论】:
-
您需要一个
else子句,以便在您的条件都不满足时定义y。但是cut是这样做的方法 -
I put else: False, Then my Target is 'False' for 2 rows
-
这两行的
weight的值是多少......应该很容易看出它为什么会中断。 (我的猜测是 20、40、60 或 80)。您似乎缺少一些<=标志 -
您尝试使用仅包含 2 行的 csv 文件执行。 Jusee 错误
标签: python pandas function if-statement apply