在python中读取CSV的第一列

时间:2016-09-23 14:10:08

标签: python csv

我有一个CSV(mylist.csv),其中有两列与此类似:

jfj840398jgg     item-2f
hd883hb2kjsd     item-9k
jie9hgtrbu43     item-12
fjoi439jgnso     item-3i

我需要将第一列读入变量,所以我得到:

jfj840398jgg
hd883hb2kjsd
jie9hgtrbu43
fjoi439jgnso

我尝试了以下内容,但它只给了我每列的第一个字母:

import csv
list2 = []
with open("mylist.csv") as f:
    for row in f:
        list2.append(row[0])

所以上面代码的结果给了我list2:

  

[' j',' h',' j',' f']

5 个答案:

答案 0 :(得分:4)

您应该split该行,然后附加第一项

list2 = []
with open("mylist.csv") as f:
    for row in f:
        list2.append(row.split()[0])

您还可以使用列表理解,它们非常适合创建列表:

with open("mylist.csv") as f:
    list2 = [row.split()[0] for row in f]

答案 1 :(得分:2)

导入csv,但从不使用它来实际读取CSV。然后你打开mylist.csv作为普通文件,所以当你声明:

 for row in f:
    list2.append(row[0])

你实际上告诉Python要做的是“遍历这些行,并将行的第一个元素(这将是第一个字母)附加到list2”。如果要使用CSV模块,您需要做的是:

import csv
with open('mylist.csv', 'r') as f:
    csv_reader = csv.reader(f, delimiter='     ')
    for row in csv_reader:
        list2.append(row[0])

答案 2 :(得分:1)

您也可以在此处使用pandas

import pandas as pd
df = pd.read_csv(mylist.csv)

然后,获取第一列就像:

matrix2 = df[df.columns[0]].as_matrix()
list2 = matrix2.tolist()

这将仅返回list中的第一列。如果您对结果进行进一步的数据操作,您可能需要考虑将数据保留在numpy中。

答案 3 :(得分:1)

这对我很有帮助。

import csv

with open("processes_infos.csv", "r", newline="") as file:
    reader = csv.reader(file, delimiter=",")
    for row in reader:
        print(row[0], row[1])


您可以将定界符“,”更改为“”

答案 4 :(得分:0)

最简单的答案

        import pandas as pd
        df = pd.read_csv(mylist.csv)
        matrix2 = df[df.columns[0]].to_numpy()
        list1 = matrix2.tolist()
        print(list1)