我有一个4列x 180.000行的数据文件。我想基于第3列中的值在特定间隔内的标准,即最小值<1,来选择要保存到新文件的整行数据。第3列值&lt;最大值。
任何想法如何做到这一点?
答案 0 :(得分:3)
使用csv
module进行读写,然后只过滤:
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)
答案 1 :(得分: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=',')