使用python从csv文件中提取某些行

时间:2014-03-13 13:35:09

标签: python csv

我有一个包含大约1500行和8列的大型CSV文件。我想创建一个新的CSV文件,减少记录数,即只有第一个CSV中的某些行。我在列表中有所需的行号。如何在不影响主CSV文件的情况下提取所需的行。我想用python做这个。

2 个答案:

答案 0 :(得分:0)

您可以使用numpy.loadtxt

import numpy as np

data = np.loadtxt('yourfile.csv', delimiter=',')
row = data[3] # fourth row e.g.

编辑: 纳入以上内容:

rowlist = [0, 5, 99]

with open('output.txt', w) as out:
    for rowindex in rowlist:
        out.write(data[rowindex])

答案 1 :(得分:0)

您可以使用csv.DictReader或csv.reader来读取文件,使用extrasaction ='ignore'创建带有您喜欢的标题的输出csv。如果要保留所有列,只需将字段标题从输入复制到输出规范。我只是给出一个更一般的案例。将文件输出到新的csv文件时,它只会输出您在输出标头中指定的列。所有其他列都将被删除。您的输出循环将使用您指定的行指示符。输出文件的第1行将是新标题。

for rowindex in rowlist:
  outfile.writerow(indata[rowindex])