在处理我们的一些数据时,我必须执行非常基本的列条件组合。填充空值后,试图在列中添加一个新变量的赋值。其中一列最终成为对象,这并非史无前例。然而,我发现看似有效的值不会转换为浮点数(例如 4,789.67)。经过大量搜索,似乎我看到的每个解决方案都指向存在不规则字符(这没有描述我的情况)。因此,我尝试在 IPython 中进行实验以重新创建错误,并且我成功了。但是,我不明白为什么会出现此错误:
测试
z='4,534.07' #initial assignment
print z
print type(z) #checked type
print repr(z) #tried to reveal hidden characters
print repr(z.replace("'","")) #tried to remove excess quotes
print z[1:-1] #tried again to remove excess quotes
print float(z) #failed conversion attempt
输出
4,534.07
<type 'str'>
'4,534.07'
'4,534.07'
,534.0
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-70-8a3c46ebe6ab> in <module>()
6 print z[1:-1]
7 print z
----> 8 print float(z)
ValueError: invalid literal for float(): 4,534.07
我看到的基本转换问题的解决方案总是建议将“x”转换为浮点数->> float(x)。我将非常感谢任何能够解释我错过了什么的人。(我以前没有发生过这种情况。)
我一直在使用 Enthought 平台:
发行说明 Canopy 1.0.0.1160
天篷 1.0.0
第一次发布。请参阅 Documention Browser、Canopy 用户指南以获取描述新功能和任何已知问题和解决方法的发行说明
谢谢