python - 在 lambda 函数中使用三元语句
问题描述
我一直在尝试使用 lambda 函数对 DataFrame 的向量进行舍入。在我的向量中,我也有字符串值,所以我尝试了以下代码:
dff.apply(lambda x: round(x, 2) if (isinstance(x,float)))
但它引发了一个 SyntaxError。
解决方案
这里有两个问题:
- 三元 if-else 缺少 else 语句。就像用户17242583回答的那样。
dff.apply
逐列摘要,因此isinstance(x,float)
不适用于舍入。改为使用矢量化numpy.round
。
dff.apply( lambda x: np.round(x,2))
推荐阅读
- google-apps-script - 尝试时出现“无效的对象类型转换”错误
- wordpress - 我需要为 Wordpress 博客创建一个 410 "gone"' 并使用 Cpanel 上的正确代码修改 htaccess 文件
- java - Rails 编辑表单
- java - 基于key的Gson多态反序列化
- vba - 在 Access VBA 中使用后期绑定循环通过 Outlook MailItems 时出错:未定义用户定义的类型
- java - 在 Java 中更新 RandomAccessFile 中的数据
- python - python 3 ,0 中的除模 2
- c++ - 如何使用 Visual Studio C++ 将 2 个列表框添加到 1 个窗口?
- java - 有什么方法可以提高我的程序生成代码的性能吗?
- php - Laravel Eloquent whereDoesntHave() 文档让我感到困惑