2015-12-02 34 views
0

未實現我有一個這樣的名單:Python的isnan - 類型錯誤:這種類型

- 1 21  84.0104  
- 2 22  81.9372  
- 3 23   NaN  
- 4 00   NaN   
- 5 01  78.7023  
- 6 02  80.0526 

在我的代碼我試圖用零來代替所有NaN的。所以我用numpy的isnan:

import pylab as pl 
import numpy as np 
from numpy import isnan 

filename = "dataset" 
file = open(filename) 

data = [] 
for line in file: 
    data.append(line.strip('\n').strip('\t').split(' ')) 
NaNs = np.isnan(data)             
data[NaNs] = 0 

但是,這並不爲我工作,我得到的錯誤 - 消息:

「的NaN = np.isnan(數據)
類型錯誤:這個未實現鍵入」

我也試圖模塊大熊貓與整合:

import pandas as pd 

但是,這並不爲我工作的。我只會得到一個「ImportError:No module named pandas」。任何人都可以幫助我理解並解決這個問題嗎?謝謝!

+0

'No module named pandas' message意味着你沒有安裝熊貓軟件包! – LondonRob

回答

1

如果未來的數據是一個字符串,它看起來就像是,你很可能只是用:

line.replace("NaN", "0")

這應該與0替換所有NaN

+0

當我使用這個時,我的NaN將從列表中刪除,但奇怪的是我沒有在列表中的零。我放鬆線條並獲得其他錯誤,因爲我需要準確的線條長度。 – elly

+0

嘗試在數據追加中的'.split'之前的'.strip('\ t')'之後添加'.replace'。 – NendoTaka

+0

謝謝你現在的作品! :) – elly