地图 pandas 内的 Lambda 函数

2024-03-16

我无法理解下面定义的 lambda 函数中 if else if else 的结构。特别是 - 部分:

if x != x

在此代码中:

check['Id'].map(lambda x: x if x != x else (str(x)[:str(x).rfind('.0')] if str(x).rfind('.0') != -1 else str(x))

PS:我发现上面的代码正在格式化 ID 值并返回一个没有输入中可能存在的小数的字符串。


我认为这是为了与NaNs,因为:

np.nan != np.nan

so if NaN它回来了NaNs else 处理字符串。

Sample:

check = pd.DataFrame({'Id':[np.nan, '0909.0', '023', '09.06']})

a = check['Id'].map(lambda x: x if x != x else (str(x)[:str(x).rfind('.0')] if str(x).rfind('.0') != -1 else str(x)))
print (a)
0     NaN
1    0909
2     023
3      09
Name: Id, dtype: object

如果省略它它可以工作,因为转换为字符串,但第一个值不是np.nan,但是字符串nan:

a = check['Id'].map(lambda x: (str(x)[:str(x).rfind('.0')] if str(x).rfind('.0') != -1 else str(x)))
print (a)
0     nan
1    0909
2     023
3      09
Name: Id, dtype: object

如果所有值都是字符串NaNs 并删除转换为字符串:

a = check['Id'].map(lambda x: ((x)[:(x).rfind('.0')] if (x).rfind('.0') != -1 else (x)))
print (a)

AttributeError:“float”对象没有属性“rfind”

a = check['Id'].map(lambda x: x if x != x else ((x)[:(x).rfind('.0')] if (x).rfind('.0') != -1 else (x)))
print (a)
0     NaN
1    0909
2     023
3      09
Name: Id, dtype: object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

地图 pandas 内的 Lambda 函数 的相关文章

随机推荐

  • d3.js 强制取消拖动事件

    我有一个简单的拖动事件 如果满足特定条件 我想强制取消当前正在进行的拖动 基本上就像您正在执行鼠标向上操作一样 像这样 var drag behavior d3 behavior drag on drag function if mycon
  • 错误:(230, 25) 错误:无法访问 com.google.android.gms.common.internal.safeparcel.zza 的 zza 类文件未找到

    package com example qpay currentlocation import android Manifest import android app AlertDialog import android content D
  • 如何扩展PDF页面大小以添加水印?

    我的网络应用程序签署 PDF 文档 我想让用户下载原始 PDF 文档 未签名 但在 pdf 文档的左边距添加图像和签名者 我在另一个网络应用程序中看到了这个想法 我也想这样做 当然我想使用 itext 库来做到这一点 我附上了两张图片 原始
  • 模拟Android查杀并重启服务

    我想模拟 android 杀死并重新启动我的服务 以测试当我收到空意图时会发生什么以及我需要做什么清理 恢复 这可能吗 public MyService extends Service Override public void onCrea
  • forkpty - 套接字

    我正在尝试开发一个简单的 telnet 服务器 守护进程 它必须在新的套接字连接上运行程序 这部分工作正常 但我必须将我的新进程关联到 pty 因为该进程具有一些终端功能 如 readline 我开发的代码是 其中socketfd是新输入连
  • 使用VB.net创建计划任务[重复]

    这个问题在这里已经有答案了 如何使用 VB NET 创建计划任务 单击按钮时从 vb net 程序填充计划任务字段 我现在什么都没有 也不知道是否可能 您必须围绕本机 COM 接口创建包装器 如果你不想自己做 你可以使用这个库https t
  • Add-AzureAccount -credential 没有像我希望的那样工作

    4 天前 2014 年 8 月 4 日 发布了 Azure Powershell 的新版本 其中包括一个新的 凭据Add AzureAccount cmdlet 上的参数 我正在尝试使用它 但显然我做错了什么 首先 我将密码存储在一个文件中
  • 此 glassfish 警告的含义:上下文路径与捆绑包不同

    我不太确定此错误消息表示什么 INFO visiting unvisited references INFO visiting unvisited references INFO visiting unvisited references
  • 如何在 KeyUp 上进行文本框回发?

    我有一个文本框 可以更改 OnTextChanged 事件中下拉列表的内容 当文本框失去焦点时 此事件似乎会触发 如何在按键或按键事件上实现此操作 这是我的代码的示例
  • 在 Laravel 中找不到模型

    Error PhotoController php 第 17 行出现 FatalErrorException 未找到类 App Http Controllers photo 此代码发生异常 gt a photo all PhotoContr
  • 从二叉搜索树中删除节点,haskell

    我正在制作一个 Haskell 函数来从二叉搜索树中删除一个节点 我知道根据儿童数量需要采取的行动的规则 目标家长有 没有孩子 删除 1 个孩子 替换为孩子 2 个子节点 找到右子树中的最小值并用该值替换该节点 然后 递归删除右子树中的最小
  • 如何获取/设置默认帧缓冲区的宽度和高度?

    我想知道我的默认帧缓冲区的尺寸 我读到将视口设置为特定值不会影响 设置帧缓冲区的尺寸 是否有任何 GL 要求 您无法通过 OpenGL 调用设置默认帧缓冲区的大小 它是窗口的大小 由窗口系统接口 例如Android上的EGL 控制 如果您想
  • OData v4 的 Web Api 在 $select 上抛出异常

    我正在使用最新版本的 WebApi 和 OData 一切设置都可以正常工作 唯一的问题是当我尝试使用 select 时 它会抛出以下错误 Object of type System Linq EnumerableQuery 1 System
  • 在机器人框架的 IE11 中单击“文件下载”弹出窗口上的“保存”按钮

    Is there a way to click on the Save or Open button in the pop up that appears while downloading a file in IE 11 I am usi
  • javascript 函数与 ( function() { ... } ());

    我经常看到这样的表达 function var x 1 我该如何解释它 从语法上讲 这本身就是一个匿名函数定义 function 之后是什么 为什么要把它放在括起来的 中 Thanks 完全相同 只不过它是在转换为函数表达式后立即调用的 v
  • sed,在第一个数字之前插入空格,但前提是空格不存在

    遗憾的是 这需要通过 sed 进行 据我所知 反向匹配不起作用 我有一个不正确的字符串 需要在其中插入一个空格 这个不正确的字符串可以采用以下格式 gt 5 0 0 lt 7 0 0 gt 5 0 0 lt 7 0 0 5 0 0 lt 7
  • Angular 2如何将Dropdownlist中选定的id与模型绑定?

    我想在选择 Dropdownlist 的某些值时调用该函数 并且该函数将使用所选值的 id 我如何将所选值的 id 绑定到模型 我可以将数据加载到下拉列表中
  • 如何使用接口映射记录

    给定以下类型和值 type Item lt a b gt Item of a b type X lt a b gt y Item lt a int gt z Item lt b bool gt let a y Item false 2 z
  • 在 C# 中将字符串作为批处理文件运行

    我正在编写一个创建批处理文件然后运行的应用程序 我知道我可以创建一个批处理文件并且run it https stackoverflow com questions 5519328 executing batch file in c shar
  • 地图 pandas 内的 Lambda 函数

    我无法理解下面定义的 lambda 函数中 if else if else 的结构 特别是 部分 if x x 在此代码中 check Id map lambda x x if x x else str x str x rfind 0 if