我是python的初学者,但对于我需要完成的任务来说,它似乎是一个很好的工具。你知道吗
这个脚本的目的是从一个相当大的csv文件(160万行8列)中清理/排序和挑选特定的数据集。你知道吗
我知道代码中的一些行不是很有效,但是脚本已经运行了20多个小时了。我在shell中没有收到任何错误代码,但我怀疑我已经超出了某种容量限制。你知道吗
要清楚的是,代码仍然在我的笔记本电脑上执行,8gbram和m3-6Y30处理器。你知道吗
我的代码真的很慢吗?或者在某个地方有无限循环吗?或者我犯了一些致命的错误吗?你知道吗
如果代码太慢没关系,我只是想知道是否应该关闭它,开始一个新的,因为它不工作。你知道吗
CG063是大的,MasterClean2是已经清洗过的小的。他们来自同一个地方。很遗憾我不能给你看文件的内容。你知道吗
感谢所有的帮助。你知道吗
import csv
f1 = open('CG063_formatted.csv', "r")
f2 = open('MasterClean2.csv', "r")
f13 = open('Master_add.csv', "w")
csv_f1 = csv.reader(f1, delimiter=',')
csv_f2 = csv.reader(f2, delimiter=',')
csv_f13 = csv.writer(f13, lineterminator='\n')
Prov_param = ['LSP1_NV_BSFC', 'LSP1_NV_FlwFuel', 'LSP1_NV_PCAC', 'LSP1_NV_Pwr', 'LSP3_NV_BSFC', 'LSP3_NV_FlwFuel', 'LSP3_NV_PCAC', 'LSP3_NV_Pwr', 'LST2_NV_BSFC', 'LST2_NV_FlwFuel', 'LST2_NV_TrqEng']
Prov_param2 = ['6', '7', '8', '9', '11']
# ------ Clean / remove duplicate ------- #
DataList = []
for line in csv_f1:
if line in DataList or line[2] != '1':
continue
else:
DataList.append( line )
DataList2 = []
for line in DataList:
for row in csv_f2:
if line[1] == row[0]:
continue
else:
DataList2.append(line)
# ------ Main ------ #
DataList3 = []
for line in Datalist2:
for row in DataList3:
if line[1] == row[0]:
continue
else:
DataList3.append(list(range(56))) #create list with range 56 in DataList3
row[0] = line[1] #place LOPNUMMER in column 1 DataList3
for row in DataList3: #place 0 in all cells except column 1
for item in row:
if item != NULL:
item = '0'
for line in DataList2:
for row in DataList3:
if line[1] == row[0]: #LOPNUMMER@Datalist2 == LOPNUMMER@Datalist3 ?
k=1
for item in Prov_param2: #test type? 6,7,8,9,11?
k= k+11
if item == line[5]:
break
i=0
for item2 in Prov_param: #Which test parameter?
i=i+1
if item == line[4]:
break
row[i+k] = line[6] # write the test value to cell in DataList3
# ------ print to file -------- #
for row in csv_f2:
csv_f13.writerow(row)
for row in DataList3:
csv_f13.writerow(row)
# ------ Close / return value ------ #
f1.close()
f2.close()
f13.close()
目前没有回答
相关问题 更多 >
编程相关推荐