当前位置: 首页 > 面试题库 >

熊猫的long()无效文字,以10为底的错误

山乐生
2023-03-14
问题内容

我正在尝试做: df['Num_Detections'] = df['Num_Detections'].astype(int)

我得到以下错误:

ValueError:以10为底的long()无效文字:‘12 .0’

我的数据如下所示:

>>> df['Num_Detections'].head()
Out[6]: 
sku_name
DOBRIY MORS GRAPE-CRANBERRY-RASBERRY 1L     12.0
AQUAMINERALE 5.0L                            9.0
DOBRIY PINEAPPLE 1.5L                        2.0
FRUKT.SAD APPLE 0.95L                      154.0
DOBRIY PEACH-APPLE 0.33L                    71.0
Name: Num_Detections, dtype: object

知道如何正确进行转换吗?

感谢帮助。


问题答案:

有一些值,无法将其转换为int

您可以使用to_numeric并获得NaN存在问题的价值:

df['Num_Detections'] = pd.to_numeric(df['Num_Detections'], errors='coerce')

如果需要检查值有问题的行,请boolean indexing与mask配合使用isnull

print (df[ pd.to_numeric(df['Num_Detections'], errors='coerce').isnull()])

样品:

df = pd.DataFrame({'Num_Detections':[1,2,'a1']})

print (df)
  Num_Detections
0              1
1              2
2             a1

print (df[ pd.to_numeric(df['Num_Detections'], errors='coerce').isnull()])
  Num_Detections
2             a1

df['Num_Detections'] = pd.to_numeric(df['Num_Detections'], errors='coerce')
print (df)
   Num_Detections
0             1.0
1             2.0
2             NaN


 类似资料:
  • 问题内容: 我编写了一个程序来求解,然后将其投影在图形上。问题是,每当出现错误时: ValueError:int()以10为底的无效文字。 有什么建议? 这是回溯: 每当我输入一个小于1但大于0的数字时,就会出现问题。在此示例中为0.3。 这是我的代码: 问题答案: 您的回溯告诉您采用整数,您试图给出一个十进制数,因此您需要使用: 这应该按预期工作: 计算机以各种不同的方式存储数字。Python有

  • 问题内容: 我正在创建一个读取文件的程序,如果文件的第一行不为空白,它将读取接下来的四行。在这些行上执行计算,然后读取下一行。如果该行不为空,则继续。但是,我收到此错误: 它正在读取第一行,但无法将其转换为整数。 我该怎么做才能解决此问题? 代码: 问题答案: 仅作记录: 我在这里…

  • 问题内容: 每次尝试编码时,它都有效,但是当我键入代码时,出现错误: ValueError:int()以10为基的无效文字:“停止” 问题答案: 传递给的字符串应仅包含数字: 一个快速的解决方法是在此处使用异常处理: 而且您可以使用匹配“ stop”的任何大小写组合:

  • Django总是在向服务器发送的每个POST请求上抛出<code>ValueError</code>。从浏览表单和SE来看,这似乎是我的Django模型的一个问题。但是,我不确定为什么模型会抛出这个错误,或者为什么Django会调用它们,因为这是在POST事件中抛出的。 有问题的视图: 我的应用程序模型: 追溯: 任何帮助或想法都将不胜感激,这真的让我摸不着头脑。

  • 问题内容: 我正在为某个项目编写代码来确定信用卡的有效性,但是我碰壁了,看来到目前为止我尝试过的所有方法都没有用。 这给了sumofodds函数一个错误,其中j = int(card [i]) 错误是“无效的文字为Int()与Base 10 有没有人可以给我一些帮助? 这是那些想知道的人的完整追溯 问题答案: 好吧,无论您输入什么内容,实际上都不是以10为底的数字。这包括非数字字符或空格的任何内容

  • 问题内容: 我有一个以10为底的数字。是否有将其转换为以62为底的数字? 例: PHP 可以转换为基数36。 问题答案: OLD :一个快速而肮脏的解决方案可以是使用如下函数: 基数转换将您的数字转换为数字为0-9a-p的基数,然后使用快速的char替换摆脱其余的数字。 如您所见,该功能易于逆转。 顺便说一句,您将使用此功能做什么? 编辑: 根据问题的更改和@jnpcl的答案,这是一组函数,它们执