[英]Python // Lambda: invalid syntax
我正在尝试在数据框上进行迭代。 我想用一个字符替换几个字符,除非我要迭代的项目为null / nan / NaN / etc。
为此,我试图在下面使用此行:
lista['ultima_receita'] = lista['ultima_receita'].apply(lambda rstr: float(rstr.replace('.','').replace(',','.')[3:]) if pd.isnull(rstr) == False)
但是,它一直让我收到无效的Synthax错误:
lista['ultima_receita'] = lista['ultima_receita'].apply(lambda rstr: float(rstr.replace('.','').replace(',','.')[3:]) if pd.isnull(rstr) == False)
^
SyntaxError: invalid syntax
我已经尽了一切努力,也没有找到导致合成胶错误的原因。 有人可以帮忙吗?
尝试简化您的问题。 lambda
确实是问题所在,因此与此处的熊猫无关。
>>> lambda rstr: float(rstr.replace('.','').replace(',','.')[3:]) if pd.isnull(rstr) == False
SyntaxError: invalid syntax # At the end of 'False' above
甚至更简单:
>>> lambda x: "foo" if "bar" == False
SyntaxError: invalid syntax
这是因为Python需要一个else
的A if B else C
建设。 如果您想进行条件修改,则可以将其else rstr
,或使用其他pandas / numpy逻辑来执行不同的逻辑。
>>> func = lambda x: "foo" if "bar" in x else x
>>> func("isobaric"), func("agnostic")
('foo', 'agnostic')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.