从python中的csv文件中获取特定列

时间:2018-05-16 23:29:52

标签: python csv

我是python编程的新手,我有一个关于从csv文件中读取的问题。 我想要做的是分成2个我的csv文件并保存在两个列表中。 所以形成我的下一个csv文件:

    5.1,3.5,1.5,0.2,setosa
    4.9,3.0,1.4,0.2,setosa
    4.6,3.1,1.5,0.2,setosa

我需要我的列表:

firstList = [ [5.1, 3.5, 1.5, 0.2], [4.9, 3.0, 1.4, 0.2], [4.6, 3.1, 1.5, 0.2] ]
secondList = ['setosa', 'setosa', 'setosa']

我尝试了不同的时间,但最接近的结果是下一个:

firstList = []
secondList = []

with open('file.csv') as file:
    fileReader = csv.reader(file, delimiter=',')
    for row in fileReader:
        firstList.append(row)
        secondList.append(row[4])

这个的输出是:

firstList = [ ['5.1', '3.5', '1.5', '0.2', 'setosa'], ['4.9', '3.0', '1.4', '0.2', 'setosa'], ['4.6', '3.1', '1.5', '0.2', 'setosa'] ]
secondList = ['setosa', 'setosa', 'setosa']

我只想从我的firstList中删除字符串'setosa',并将其他所有内容转换为int 任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以构建行中前三个单元格的子列表,然后在从中创建新列表时构建浮动。

firstList = []
secondList = []

with open('file.csv') as file:
    fileReader = csv.reader(file, delimiter=',')
    for row in fileReader:
        firstList.append([float(cell) for cell in row[:3]])
        secondList.append(row[4])