【发布时间】:2021-10-07 10:41:20
【问题描述】:
我有以下用于语言检测库的 Python 代码,应用于 pandas DataFrame:
df['check'].apply(lambda x: detect(str(x)) else np.nan)
所以如果detect(str(x)) 不起作用(异常),新列check 中的行应该是np.nan。
但是,代码会响应
SyntaxError: invalid syntax
如何在 lambda 行中添加正确的异常语句?
提前致谢!
--
经过下面的cmets,我解决了如下:
def lang_func(x):
try:
language = detect(str(x))
except:
language = np.nan
return language
df['check'] = df['text'].apply(lang_func)
【问题讨论】:
-
您的意思是使用
x if some_condition else y之类的东西吗?没有if的else没有任何意义...但是如果遇到异常,则不能使用它。 -
您无法在 lambda 表达式中捕获异常。请改用完整的函数。
-
不是
else是or -
啊,所以没有办法处理 lambda 函数中的异常?
-
@diggusbiccus or 也不起作用,当主函数抛出错误时。