2015-11-20 154 views
3

我真的很新與python。所以也許我的問題是非常基本的......對於我的工作,我在一段時間內檢查了不同的參數。對於從Python開始,我想繪製一個簡單的List,每日測量一個溫度值一個月。在列表我有3個劈叉這樣的結構如下:Python:ValueError:無效文字爲float():

日-TAB-溫度-TAB-上午十時正

我的代碼:

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 

當我嘗試繪製溫度,per-日 - 情節我得到錯誤消息:

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 

它看起來像代碼不轉置數據。爲什麼?有誰能夠幫助我? 謝謝!

+0

它看起來像Python試圖將日期解釋爲浮點小數點,這當然不起作用,因爲它是一個日期,而不是一個數字。 – n1c9

+1

請給出您的數據 –

+0

好問題! @elly – Veltro

回答

3

我解決了我的問題!因此,對於任何人誰具有同樣的問題,這裏是我做的:我用

print(repr(data)) 

(感謝斯蒂芬妮·Dionysio)來檢查我的代碼中的每一步,並理解的是,問題不在於轉功能,但每一行中的空白空間。在嘗試使用不同方法刪除空白空間後,我看到我無法刪除由'data.append'引起的數組中的數組。爲了獲取值,我需要我用pop()方法中的append方法:

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

現在我的代碼工作正常。感謝您的好建議,他們讓我以正確的方式! :)

2

我不知道你的「u_netCDF_write」文件的內容,所以調試它是相當困難的。但正如另一篇文章所顯示的那樣,雲是價值中存在的非印刷品。

看看這有助於 python ValueError: invalid literal for float()

0

2014年7月3日不能是浮動。看起來您正在使用數據列表中的錯誤數據。

相關問題