使用python比较来自2个csv文件的一些列

时间:2016-05-12 21:34:31

标签: python csv

输入为2 csv个文件

EID MolIdx TEStart TEEnd TE TZone TBulkBE TBulkAE MC JT zavg vabs vzavg  xyd.x xyd.y xydist nnbw vabsprev midhb
0 370 36700 36800 110 20 36150 37090 0 0 -8.25705 0.219113 -0.000800014 20.8926 41.4347 5.75852 0 4.13067 0 
1 423 17950 18150 210 180 17400 18430 1 0 -4.26426 0.586578 -0.053 77.22 85.2104 22.0534 0 3.551 0 
2 468 41790 42020 240 50 41360 42380 0 0 7.82681 0.181248 -0.00269566 90.0646 92.7698 5.0841 0 4.19304 0 

EID MolIdx TEStart TEEnd TE TZone TBulkBE TBulkAE MC JT zavg vabs vzavg xyd.x xyd.y xydist nnbw vabsprev midhb
0 370 36700 36800 110 20 36150 37090 0 0 -0.846655 0.0218695 2.59898e-05 2.0724 4.1259 0.583259 10 0.412513 0 
1 423 17950 18150 210 180 17400 18780 1 0 -0.453311 0.058732 -0.00526783 7.7403 8.52544 2.19627 0 0.354126 0 
2 468 41790 42020 240 70 41360 42380 0 0 0.743716 0.0181613 -0.000256186 9.08777 9.21395 0.502506 0 0.419265 0 

我需要将MC中的JTfile1列与file2

中的列进行比较

欲望输出:

Number_of_strings

打印字符串,其中值不同

import csv

old = csv.reader(open('old.csv', 'rb'), delimiter=',')
row1 = old.next()
new = csv.reader(open('new.csv', 'rb'), delimiter=',')
row2 = new.next()

if (row1[8] == row2[8]) and (row1[9] == row2[9]):
    continue
else:
    print row1[0] + ':' + row1[8] + '!=' + row2[8]

但它确实对我不起作用

1 个答案:

答案 0 :(得分:1)

  • 分隔符为而非,
  • 您忘记使用for循环来迭代其余文件:

代码:

import csv

old = csv.reader(open('old.csv', 'rb'), delimiter=' ')
row1 = old.next()
new = csv.reader(open('new.csv', 'rb'), delimiter=' ')
row2 = new.next()

for row1, row2 in zip(old, new):
    if (row1[8] == row2[8]) and (row1[9] == row2[9]):
        continue
    else:
        print row1[0] + ':' + row1[8] + '!=' + row2[8]
相关问题