当数据框中存在 NaN 时使用 astype 时出错

2024-01-09

df
     A     B  
0   a=10   b=20.10
1   a=20   NaN
2   NaN    b=30.10
3   a=40   b=40.10

我试过 :

df['A'] = df['A'].str.extract('(\d+)').astype(int)
df['B'] = df['B'].str.extract('(\d+)').astype(float)

但我收到以下错误:

ValueError:无法将浮点 NaN 转换为整数

And:

AttributeError:只能将 .str 访问器与字符串值一起使用,该访问器在 pandas 中使用 np.object_ dtype

我该如何解决 ?


如果列中缺少某些值(NaN) 然后转换为数字,总是dtype is float。您无法将值转换为int。只为float, 因为type of NaN is float.

print (type(np.nan))
<class 'float'>

See docs http://pandas.pydata.org/pandas-docs/stable/gotchas.html#na-type-promotions如果至少有一个值,如何转换值NaN:

整数 > 转换为 float64

如果需要 int 值,则需要替换NaN对某些人int, e.g. 0 by fillna http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html然后它就完美地工作了:

df['A'] = df['A'].str.extract('(\d+)', expand=False)
df['B'] = df['B'].str.extract('(\d+)', expand=False)
print (df)
     A    B
0   10   20
1   20  NaN
2  NaN   30
3   40   40

df1 = df.fillna(0).astype(int)
print (df1)
    A   B
0  10  20
1  20   0
2   0  30
3  40  40

print (df1.dtypes)
A    int32
B    int32
dtype: object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当数据框中存在 NaN 时使用 astype 时出错 的相关文章

随机推荐

  • 对齐 html 电子邮件中表格中的数据单元格元素

    我有一个如下所示的屏幕截图 我必须在 HTML CSS 中复制它 附件是fiddle https jsfiddle net dehg79qs embedded result我现在可以复制它 我正在编写 HTML 电子邮件代码 因此这就是我在
  • 等待 asyncio.Future 会引发并发.futures._base.CancelledError,而不是等待设置值/异常

    当我运行以下 python 代码时 import asyncio import logging logging basicConfig level logging DEBUG async def read future fut print
  • 使用bundle exec运行rails控制台

    当我执行时bundle exec rails c我得到一个带有以下提示的 ruby 控制台 Loading development environment Rails 3 0 3 jruby 1 6 3 001 gt 一切看起来都按顺序进行
  • 将 console.log 转换为输出到 div

    我正在使用本主题中的简单 rss feed 解析器示例 Rss 解析器示例 https stackoverflow com questions 10943544 how to parse an rss feed using javascri
  • 应用程序关闭时发送通知

    当应用程序完全关闭时 如何以编程方式发送通知 示例 用户关闭了应用程序 也在 Android 任务管理器中 然后等待 应用程序应在 X 秒后或当应用程序检查更新时发送通知 我尝试使用这些代码示例 但是 应用程序关闭时推送通知 https s
  • sbt-assemble:跳过特定测试

    我想配置sbt assembly跳过特定的测试课程 有什么办法可以做到这一点吗 如果有帮助 我使用 ScalaTest 标记了测试 Network tag See 具有共享源的附加测试配置 http www scala sbt org 0
  • 0 在socket()系统调用中表示什么?

    下一行中的 0 表示什么 我还可以使用哪些其他标志 server socket AF UNIX SOCK STREAM 0 正如其他人可能所说的那样 第三个论点socket一般是一个int指示协议 0表示调用者不想指定协议并将其留给服务提供
  • 在 OSX 10.8 SDK/objective-c 中拖动按钮

    我开始使用 Objective Ctoday为了开发 OSX 山狮 的应用程序 我有一堆按钮 我想将它们拖到其他对象中 例如文本字段 我按照苹果开发网站上的教程进行操作 但我无法让拖动部分工作 放置部分工作 例如 我可以将文件从查找器拖到文
  • 低 RAM 消耗 C++ 特征求解器

    我是新手C 编程 但我有一个任务来计算特征值和特征向量 标准特征问题Ax lx 对于对称矩阵 和厄米矩阵 对于尺寸非常大的矩阵 二项式 L L 2 where L大约是18 22 现在我正在具有大约 7 7 GB 可用内存的机器上进行测试
  • 为什么我的重载 C++ 构造函数没有被调用?

    我有一堂这样的课 class Test public Test string value Test bool value 如果我创建一个像这样的对象 Test test Just a test bool 构造函数被调用 有人知道为什么吗 T
  • PHP使用session来选择下拉选项

    我已经获得了此上传表单 并且希望保留会话中下拉列表中的所选选项 以便在提交后显示最后的选择 例如我选择 颜色 选项 提交后颜色仍然在下拉列表中选择 我回显 SESSION testname 就在第一个单选按钮之前 它给我返回 颜色 但在选项
  • JQuery 中的简单 SQL 查询生成器

    我正在尝试找到一个类似于 SQL 查询生成器插件的简单查询生成器界面http plugins jquery com project SQL QUERY BUILDER http plugins jquery com project SQL
  • 是否可以乐观地更新端点的所有缓存?

    在 redux 教程中 我们学习了如何执行乐观更新 第 8 部分 rtk query advanced implementing optimistic updates https redux js org tutorials essenti
  • 将 4 字节消息头从 C# 客户端发送到 Java 服务器

    我正在尝试为用 Java 编写的服务器编写一个 C 客户端 服务器需要一个 4 字节 Java 中的 DataInputStread readInt 消息头 后跟实际消息 我对 C 完全陌生 如何将此消息头发送到 Java 服务器 我尝试了
  • 如何删除 Google OAuth2gapi 事件侦听器?

    我真的很难理解如何删除谷歌gapi事件监听器 下面粗体是所讨论的完整功能 window gapi auth2 getAuthInstance isSignedIn listen onAuthChange 我想在 useEffect 挂钩中使
  • 如何使用量角器通过文本查找并单击表格元素?

    tr Some Text tr 我见过其他一些类似的问题 但我还无法解决 这就是我到目前为止所尝试过的 element all by repeater column in columns findElement by id code get
  • `sequenceA` 是如何工作的

    我是 Haskell 新手 想了解它是如何工作的 sequenceA 3 2 1 3 我从定义开始 sequenceA Applicative f gt f a gt f a sequenceA pure sequenceA x xs lt
  • 有没有办法在 python/opencv 中从单摄像头视频生成实时深度图?

    我试图将单个图像转换为其深度图 但我找不到任何有用的教程或文档 我想使用 opencv 但是如果您知道使用张量流等获取深度图的方法 我很高兴听到它 有很多关于立体视觉的教程 但我想让它更便宜 因为它是一个帮助盲人的项目 我目前正在使用 es
  • 无法使用 Python 中的检查通过 exec 获取“声明”的方法的源代码

    下面的代码抛出异常 import inspect def work my function code def print hello print Hi exec my function code globals inspect getsou
  • 当数据框中存在 NaN 时使用 astype 时出错

    df A B 0 a 10 b 20 10 1 a 20 NaN 2 NaN b 30 10 3 a 40 b 40 10 我试过 df A df A str extract d astype int df B df B str extra