在运行代码以使用pandas打开csv文件并将其转换为浮点值列表时,总是会发生此错误,我已经尝试了好几种方法,但均无法正常工作
import csv
import random
import math
import pandas as pd
def loadCsv():
import pandas as pd
lines = pd.read_csv(r"C:\Users\apoor\OneDrive\Documents\apoorv.csv")
dataset = list(lines)
for i in range(len(dataset)):
dataset[i] = [float(x) for x in dataset[i]]
return dataset
dataset=loadCsv()
print(dataset)
每次发生此错误
File "C:/Users/apoor/.spyder-py3/untitled2.py", line 11, in <listcomp>
dataset[i] = [float(x) for x in dataset[i]]
ValueError: could not convert string to float: '.'
答案 0 :(得分:1)
dataset[i] = [float(x) for x in dataset[i]]
在这里,您将dataset
的每个元素都转换为float,其中某些元素无法转换为float。例如,一个元素可能包含一个空格或一些其他无效字符,这些字符无法转换为浮点型。
要解决此问题,可以使用try catch来处理此异常,或者可以确保数据集中的任何元素都不包含任何无法转换为字符串的字符。
让我们替换此行:
dataset[i] = [float(x) for x in dataset[i]]
到以下几行:
for i, x in dataset:
try:
dataset[i] = float(x)
except ValueError:
print 'Invalid string to convert into float'
现在而不是错误值,您将看到在哪个索引发生该错误。在处理异常时。