Python 高效检索csv文件中的特定列

Python 高效检索csv文件中的特定列,python,csv,Python,Csv,我试图检索csv文件中的7个特定列,每列检索100次。这就是我一直在做的。我知道这是低效的,但如果我只知道如何添加100次,它似乎会起作用 data_file_path = '2001-1.csv' counter = 0 col0 = [] col1 = [] col2 = [] col13 = [] col16 = [] col17 = [] col18 = [] with open(data_file_path, 'r', encoding="latin-1") as fin:

我试图检索csv文件中的7个特定列,每列检索100次。这就是我一直在做的。我知道这是低效的,但如果我只知道如何添加100次,它似乎会起作用

data_file_path = '2001-1.csv'
counter = 0

col0 = []
col1 = []
col2 = []
col13 = []
col16 = []
col17 = []
col18 = []

with open(data_file_path, 'r', encoding="latin-1") as fin:
    splitted = csv.reader(fin, delimiter = ',')
    next(splitted)

    for col in splitted:
        counter += 1
        col0.append(col[0])
        if(counter == 100):
            counter = 0
        col1.append(col[1])
        if(counter == 100):
            counter = 0
        col2.append(col[2])
        if(counter == 100):
            counter = 0            
        col13.append(col[13])
        if(counter == 100):
            counter = 0
        col16.append(col[16])
        if(counter == 100):
            counter = 0
        col17.append(col[17])
        if(counter == 100):
            counter = 0 
        col18.append(col[18])
        if(counter == 100):
            counter = 0
            break

flight_data = [col0, col1, col2, col13, col16, col17, col18]

但是如果知道如何有效地执行,那就太好了。

col
这是一个用词不当的地方,因为您正在对行和列进行迭代

使用字典,并保留列的列表。然后,您可以将代码简化为一个漂亮的小嵌套循环

idx = [0, 1, 2, 13, 16, 17, 18]
data = {k : [] for k in idx}
with open(data_file_path, 'r', encoding="latin-1") as fin:
    reader = csv.reader(fin, delimiter = ',')
    next(reader)

    for row in reader:
        for i in idx:
            data[i].extend([row[i]] * 100)

col
这是一个用词不当的地方,因为您正在对行和列进行迭代

使用字典,并保留列的列表。然后,您可以将代码简化为一个漂亮的小嵌套循环

idx = [0, 1, 2, 13, 16, 17, 18]
data = {k : [] for k in idx}
with open(data_file_path, 'r', encoding="latin-1") as fin:
    reader = csv.reader(fin, delimiter = ',')
    next(reader)

    for row in reader:
        for i in idx:
            data[i].extend([row[i]] * 100)

如果你的问题得到充分解决,请。如果你的问题得到充分解决,请。