作为一个菜鸟,我正在努力将CSV中的一列数字转换为浮点数。
测试文件如下所示:test.csv = [['a','1'],['b','2']]
。
我的代码:
def readLines():
def conv(s):
try:
s=float(s)
except ValueError:
pass
return s
with open('C:/Users/Public/Documents/Scripts/test.csv', 'rU') as data:
reader = csv.reader(data)
for row in reader:
for cell in row:
y=conv(cell)
print (y)
readLines()
结果如下:
a
1.0
b
2.0
但我真的只想修改数组,以便数字是浮点数,其他一切都保持不变。
此外,从我的角度来看,保持代码的顺序会更好 - 即打开文件,然后进行隐蔽。
答案 0 :(得分:0)
我不确定,您希望得到什么结果,但这就是我理解的方式:您希望将CSV文件中的数据读入python数据结构,并将每行中的第二个单元转换为浮点数:
with open('C:/Users/Public/Documents/Scripts/test.csv', 'rU') as data:
reader = csv.reader(data)
# using list comprehension
result = [(row[0], float(row[1])) for row in reader]
print result
输出:
[('a', 1.0), ('b', 2.0)]