在 lambda 函数中使用三元语句
Using ternary statement in a lambda function
我一直在尝试使用 lambda 函数对 DataFrame 的向量进行舍入。在我的向量中我也有字符串值,所以我尝试了这个代码:
dff.apply(lambda x: round(x, 2) if (isinstance(x,float)))
但是它引发了 SyntaxError。
Python 中的三元语句要求条件后 else
。
dff.apply(lambda x: round(x, 2) if (isinstance(x,float)) else x)
这里有两个问题:
- tenary if-else 缺少 else 语句。喜欢 user17242583 的回答。
dff.apply
逐列摘要,因此 isinstance(x,float)
不适用于四舍五入。请改用矢量化 numpy.round
。
dff.apply( lambda x: np.round(x,2))
我一直在尝试使用 lambda 函数对 DataFrame 的向量进行舍入。在我的向量中我也有字符串值,所以我尝试了这个代码:
dff.apply(lambda x: round(x, 2) if (isinstance(x,float)))
但是它引发了 SyntaxError。
Python 中的三元语句要求条件后 else
。
dff.apply(lambda x: round(x, 2) if (isinstance(x,float)) else x)
这里有两个问题:
- tenary if-else 缺少 else 语句。喜欢 user17242583 的回答。
dff.apply
逐列摘要,因此isinstance(x,float)
不适用于四舍五入。请改用矢量化numpy.round
。
dff.apply( lambda x: np.round(x,2))