2016-11-15 127 views
3

我想读一个CSV文件作为这样一个矩阵:如何将csv文件中的字符串列表转换为浮点型?

import csv 
with open("data.csv", "r") as file: 
    table = [line for line in csv.reader(file)] 
    for line in table: 
     print(line) 

但是,我需要在列表中的内容转换为浮动。我试图转换使用

table = [int(x) for x in table] 

浮动然而这出来作为一个错误

TypeError: int() argument must be a string or a number, not 'list'

怎样才能解决这个问题?

+1

int(e)for e in lst –

+0

请修复您的代码格式 – inspectorG4dget

回答

1

下面是一个简单的例子,如何在每一行数据转换为float数值类型,并做一些计算:

假设CSV数据文件data.csv充满了一些intsfloats

12,13,14,15,16 
0.1,0.2,0.3,0.4,0.5 
import csv 
with open("./data.csv", "rU") as file: 
    table = [line for line in csv.reader(file)] 
    for line in table: 
     numbers = [ float(x) for x in line ] 
     sum = 0 
     for number in numbers: 
      sum = sum + number 
     print(numbers) 
     print "The sum of numbers is: ", sum 

OUPUTS:

[12.0, 13.0, 14.0, 15.0, 16.0] 
The sum of numbers is: 70.0 
[0.1, 0.2, 0.3, 0.4, 0.5] 
The sum of numbers is: 1.5