1

我有一个 4 列 x 180.000 行的数据文件。我想根据第 3 列中的值在特定间隔内的标准(即最小值 < 第 3 列值 < 最大值)选择要保存到新文件的整行数据。

任何想法如何做到这一点?

4

2 回答 2

3

使用csv模块读写,然后只过滤:

with open(inputfilename, 'rb') as inputfile, open(outputfile, 'wb') as outputfile:
    reader = csv.reader(inputfile)
    writer = csv.writer(outputfile)

    for row in reader:
        if minval <= int(row[2]) <= maxval:
            writer.writerow(row)
于 2013-04-27T12:22:38.743 回答
1

可以通过简单的 CSV 读/写来完成。可以使用 Numpy 更优雅地以矢量化形式完成,而且由于行数很大,Numpy 可能会更快。

import numpy as np
#Load file into a 'MATRIX'
data=np.loadtxt('name_of_delimited_file.txt')
# Find indices where the condition is met
idx_condition_met=(data[:,2] > min) & (data[:,2] < max)
np.savetxt('output.txt', data[idx_condition_met], delimiter=',') 
于 2013-04-27T14:02:51.493 回答