【问题标题】:Python isnan - TypeError: Not implemented for this typePython isnan - TypeError:未为此类型实现
【发布时间】:2016-03-06 21:53:41
【问题描述】:

我有一个这样的列表:

 - 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 

但这对我不起作用,我收到错误消息:

“NaNs = np.isnan(数据)
TypeError:未针对此类型实现"

我还尝试将模块 pandas 与:

import pandas as pd

但这对我也不起作用。我只收到“ImportError:没有名为 pandas 的模块”。谁能帮我理解和解决这个问题?谢谢!

【问题讨论】:

  • No module named pandas 消息表示您没有安装 pandas 包!

标签: regex file python-2.7 numpy nan


【解决方案1】:

如果传入的数据是一个字符串,看起来就是这样,您可能只需要使用:

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

这应该将所有NaN 替换为0

【讨论】:

  • 当我使用它时,我的 NaN 将从列表中删除,但奇怪的是我在列表中也没有零。因为我需要确切的线长,所以我松开了线条并得到了其他错误。
  • 尝试在数据追加中的.strip('\t') 之后的.split 之前添加.replace
猜你喜欢
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 2013-05-07
  • 2013-02-17
相关资源
最近更新 更多