使用python比较某些表中的某些列

时间:2016-05-12 08:33:08

标签: python csv

我需要比较两个表中的两个值MCJT

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 

我需要使用模块csv来完成。我知道如何使用pandasxlrd执行此操作,但使用csv时不知道。

欲望输出:

Number_of_strings MC JT

打印字符串,其中值不同

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 :(得分:0)

您可以尝试以下内容:

old = list(csv.reader(open('old.csv', 'rb'), delimiter=','))
new = list(csv.reader(open('new.csv', 'rb'), delimiter=','))

old = zip(*old)
new = zip(*new)

print ['%s-%s-%s'%(str(a), str(b), str(c)) for a, b, c in zip(old[0], new[8], old[8]) if b != c]

首先,我们得到一份清单清单。 zip(*x)转置列表列表。其余的应该很容易破译......

你实际上可以在字符串中放置任何你想要的东西......