使用Python从CSV文件中提取特定行

-3 投票
2 回答
3784 浏览
提问于 2025-04-17 22:07

我有一个很大的CSV文件,里面大约有1500行和8列。我想创建一个新的CSV文件,里面只包含原CSV文件中的某些行,也就是说,记录的数量要减少。我已经有了需要的行号列表。请问怎么提取这些需要的行,而不影响原来的CSV文件呢?我想用Python来实现这个操作。

2 个回答

0

你可以使用csv.DictReader或者csv.reader来读取文件,然后用你想要的表头创建输出的csv文件,方法是设置extrasaction='ignore'。如果你想保留所有的列,只需把输入文件的字段表头复制到输出文件的设置中。我这里给的是一个更通用的情况。当你把文件输出到一个新的csv文件时,它只会输出你在输出表头中指定的列,其他的列会被丢掉。你的输出循环会使用你指定的行指示符。输出文件的第一行将是新的表头。

for rowindex in rowlist:
  outfile.writerow(indata[rowindex])
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])

撰写回答