`if`是否仅与Series.apply(lambda x)中的`else`结合使用?

时间:2018-04-16 18:40:59

标签: pandas

我得到了filename='AS-1704-CT-Data-(Jan4---Jan-7)_1.csv'; T=readtable(filename, 'Delimiter', ',', 'Range', 'C:C')

SyntaxError

当我添加housing['Lot Area'].apply(lambda x: x + 50000 if x > 20000) 时,代码运行良好:

else

housing['Lot Area'].apply(lambda x: x + 50000 if x > 20000 else x) 是否仅与if结合使用?我希望仅在else时使用50000增加x - 否则我希望x > 20000保持不变。我发现x部分在这里有点多余。除了之前的第一个问题,有没有办法在没有else部分的情况下编写此代码?

2 个答案:

答案 0 :(得分:4)

根据您的说明,这里不需要apply

housing.loc[housing['Lot Area']>20000,'Lot Area']+=50000

Alex的评论:

如果if语句解析为值为False,则apply()不会返回,只是让系列中的值为

答案 1 :(得分:1)

您正在获得SyntaxError,因为您输入的语法无效。必须使用三元运算符,如

expression if bool else other_expression