Python:ValueError:float()的文本无效:

2024-04-19 03:16:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python很陌生。所以也许我的问题是非常基本的…对于我的工作,我在一段时间内检查不同的参数。从Python开始,我想用一个月的每日测量温度值绘制一个简单的列表。在列表中,我有三个类似以下结构的拆分:

日-表-温度-表-编号

我的代码:

import pylab as pl
import numpy as np

filename = "u_netCDF_write"
file = open(filename)
NoOfValues = 31                                                      

counter=0
data = []              
for line in file:                                                     
    if counter <= NoOfValues:                                          
         data.append(line.strip('\n').strip('\t').split(' '))            
         if len(data[-1]) == 4:                                         
            data[-1].pop(3)                                             
    counter+=1                                                          
x = np.linspace(0,30,31)                                                
data = np.transpose(data)                                             

for i in range(len(data[2])):                                           
   data[2][i] = float(data[2][i])-273.15

当我尝试绘制每日温度图时,会收到错误消息:

Traceback (most recent call last):
  File ".../.../unetCDFplot.py", line 43, in <module>
    data[2][i] = float(data[2][i])-273.15   
ValueError: invalid literal for float(): 03.07.2014

看起来代码没有转换数据。为什么会这样?有人能帮我吗? 谢谢!


Tags: 代码inimport列表fordataasnp
3条回答

我解决了我的问题!所以对任何有同样问题的人来说,我做的是:我用

print(repr(data))

(多亏了斯蒂芬妮·狄奥尼西奥)检查我代码中的每一步,并理解问题不是转置函数,而是每一行的空格。尝试了不同的方法删除空空间后,我发现无法删除由“data.append”引起的数组中的数组。为了获得所需的值,我在append方法中使用了pop():

data.append(line.strip('\n').strip('\t').split(' ').pop(7))  

现在我的代码可以正常工作了。谢谢你的忠告,他们让我走对了路!:)

我不知道你的“u-netCDF-write”文件的内容,所以调试它是相当困难的。但正如另一篇文章所显示的,它是一个存在于值中的非打印字符。

看看这是否有帮助 python ValueError: invalid literal for float()

2014年7月3日不能为浮动。看起来您使用的数据列表中的数据不正确。

相关问题 更多 >