繁体   English   中英

Python // Lambda:语法无效

[英]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需要一个elseA 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM