首页 > 解决方案 > 在 lambda 函数中使用三元语句

问题描述

我一直在尝试使用 lambda 函数对 DataFrame 的向量进行舍入。在我的向量中,我也有字符串值,所以我尝试了以下代码:

dff.apply(lambda x: round(x, 2) if (isinstance(x,float)))

但它引发了一个 SyntaxError。

标签: pythonpandasif-statementlambdasyntax

解决方案


这里有两个问题:

  1. 三元 if-else 缺少 else 语句。就像用户17242583回答的那样。
  2. dff.apply逐列摘要,因此isinstance(x,float)不适用于舍入。改为使用矢量化numpy.round
dff.apply( lambda x: np.round(x,2))

推荐阅读