Python 2.7中从CSV导入浮点数据的问题排查
解决CSV浮点数据导入后不是浮点数列表的问题
哦,我一眼就发现问题所在啦!你在代码里多做了一步int()转换——int(float(row[0]))这行代码会先把字符串转成浮点数,紧接着又把它转成了整数,这可不就导致最终y列表里全是整数,不是你想要的浮点数嘛!
修正后的基础代码(单元素行场景)
如果你的CSV每行只有一个浮点数据,只需要去掉多余的int()转换就行:
import csv y = [] with open('Sygnal2.txt','r') as csvfile: plots = csv.reader(csvfile, delimiter=',') for row in plots: # 直接保留float转换后的浮点数结果 y.append(float(row[0]))
一行多组数据的处理方案
你提到CSV里是一行多组浮点数据,那上面的代码只会取每行的第一个数据。如果要把整行的所有浮点数据都加入列表,需要遍历每行的每个元素:
import csv y = [] with open('Sygnal2.txt','r') as csvfile: plots = csv.reader(csvfile, delimiter=',') for row in plots: # 遍历当前行的每个字符串,转成浮点数后添加到y for num_str in row: y.append(float(num_str))
这样处理后,打印y就能得到纯浮点数的列表啦~
内容的提问来源于stack exchange,提问作者Hiddenguy
相关产品推荐
相关产品推荐

