当前位置: 首页 > 知识库问答 >
问题:

无法将非有限值(NA或inf)转换为整数[重复]

段干兴业
2023-03-14

我有一个像这样的数据框

   survived pclass  sex age sibsp   parch   fare    embarked
    0   1   1   female  29.0000 0   0   211.3375    S
    1   1   1   male    0.9167  1   2   151.5500    S
    2   0   1   female  2.0000  1   2   151.5500    S
    3   0   1   male    30.0000 1   2   151.5500    S
    4   0   1   female  25.0000 1   2   151.5500    S

我想将性别转换为0,1编码并使用isnull检查列中没有NA

但是,在这一行我收到了ValueError:无法将非有限值(NA或inf)转换为整数

df['sex'] = df['sex'].map({'female':0, 'male':1}).astype(int)

有什么建议吗?谢谢你!

共有2个答案

曾喜
2023-03-14

我认为正确的方法是使用替换函数

df.replace({'sex':{'female':0, 'male':1}}, inplace=True)

如果您的df有NAN,则可以使用fillna将其填充为某个值,例如-1,然后替换其余的值

df.fillna({'sex':-1}, inplace=True)
df.replace({'sex':{'female':0, 'male':1}}, inplace=True)
马寒
2023-03-14

使用np.where

前任:

import numpy as np

df['sex'] = np.where(df['sex'] == 'female', 0, 1)
 类似资料:
  • 我想创建一个新列,并用和替换和不丢失的值。 我想要的: 这就是我所尝试的: 看来第二行不正确。 有什么建议吗?

  • 我想将时间间隔配置存储到数据库中,如下所示: 但是我不知道如何将例如值转换为LocalDateTime,因为我想使用此值来计算SQL查询的时间间隔。 将此值转换为LocaLDateTime的正确方法是什么?

  • PHP是否有任何内置函数可以接受布尔值并返回其整数等效值?0代表FALSE,1代表TRUE?当然,您可以轻松创建一个函数来做到这一点,我只是询问PHP内部是否有内置函数。我已经尝试了并将其转换为但它们不起作用,它们在TRUE和FALSE两种情况下都返回0。 编辑:问题是它不是真正的布尔值,而是一个字符串“false”、“true”,php没有检测到传递布尔值的jquery帖子。问题解决了,谢谢!

  • 将值转换为安全整数。 使用 Math.max() 和 Math.min() 来找到最接近的安全值。 使用 Math.round() 转换为一个整数。 const toSafeInteger = num => Math.round(Math.max(Math.min(num, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER)); toSafe

  • 本文向大家介绍如何在R数据帧中将空值转换为NA?,包括了如何在R数据帧中将空值转换为NA?的使用技巧和注意事项,需要的朋友参考一下 当我们的数据包含空值时,很难执行分析,我们可能会将这些空值转换为NA,以便我们了解不可用的值的数量。这可以通过使用单个方括号来完成。 示例 请看以下具有一些空值的数据框- 将空值转换为NA-

  • 我有“1”作为字符串,我想将它转换为十进制,作为整数。 我尝试了,但它返回49,而不是1个整数。 那么,将“1”字符串转换为1整数需要什么呢?