Python ValueError: could not convert string to float: ‘-‘ 解决办法

写主成分分析程序时,遇到 ValueError: could not convert string to float: ‘105001 2512.6143 11857.8736’ 的问题
此时我的程序是这样的:

def loadDataSet(fileName, delim='\t'):
    fr = open(fileName)
    stringArr = [line.strip().split(delim) for line in fr.readlines()]
    datArr = [list(map(float,line)) for line in stringArr]
    return mat(datArr)

txt数据是这样的:
Python ValueError: could not convert string to float: ‘-‘ 解决办法_第1张图片
一般出现这种情况时,必然是出现了不可转换的符号。
后来,我改为:

def loadDataSet(fileName, delim='\t'):
    fr = open(fileName)
    stringArr = [line.strip().split() for line in fr.readlines()]
    datArr = [list(map(float,line)) for line in stringArr]
    return mat(datArr)

所作改动就是把 split(delim)换为split()
没错 是这样,程序正常运行了。
大概是因为原来只能删除占位符,而修改过后 没有参数的情况下,默认还可以删除其他符号!

你可能感兴趣的:(数据分析与数据挖掘,python,ValueError)