使用Python进行Excel列比较
我有一个excel文件,其中有一些列。
COL 1 | COL 2 | COL 3 ABCD | ABC(D) | CDA AB CD | ABC D | CD - (B) ABCD | (ABCD) | ABCD ABC D | ABDC | ABC DA(BC ) D | AD B - C| AB CD
我想比较每一列与其他列,并希望列之间的相似之处和差异。
例如 :
-
比较COL 1和COL 2
相似之处:
None
差异:
ABCD AB CD ABCD A(BC ) D ABC(D) ABC D (ABCD) ABDC AD B - C
然后比较COL 2和COL 3,然后比较COL 1和COL 3.只需要精确的string匹配,甚至将空白视为不匹配。 列号可能会增加,从列的第二行开始比较。
我怎么能在Python中实现这种recursion比较,这使我快速处理输出?
你可以使用xlrd
。 首先,从你的文件中读取内容。 其次,将三列保存为三个字典,因为字典比较快。 第三,做比较工作并输出结果。
我build议你检查xlrd的API并自己写代码。 这里是链接 。
有任何问题请随时询问我(们。
编辑:
这是一个例子。
#!/usr/bin/python #-*- coding:utf-8 -*- name = {1:'a', 2:'b', 3:'c'} lname = {1:'g', 2:'b', 3:'v'} common = {} diff_name = {} diff_lname = {} for key in name.keys(): if name[key] == lname[key]: common[key] = name[key] else: diff_name[key] = name[key] diff_lname[key] = lname[key] print 'common part is:', common print 'diff_name is: ', diff_name print 'diff_lname is: ', diff_lname
algorithm可能是
for colA in range(0, N): for colB in range (colA + 1, N - 1): compare(colA, colB)