【发布时间】:2016-11-30 22:09:56
【问题描述】:
我正在解析两个不同的 csv 文件,需要匹配它们之间的列。目前,当我运行 sn-p 时,它不返回匹配值,而实际上两个 csv 文件之间存在匹配的地址。我遇到的问题是 OnlineData csv 文件中地址字段的缩写。例如:
In the Addresses csv In the OnlineData csv
4587 Newton Road 4587 Newton Rd
7854 Food Court 7854 Food Ct
如何告诉 Python 在查找时仅查找两个 csv 文件中的数字 ('4587') 和第一个单词 ('Newton')匹配值。
import csv
Addresses = set()
with open ('Addresses.csv') as f:
for row in csv.reader(f):
Addresses.add(row[1])
OnlineData = set()
with open ('C:/Users/OnlineData.csv') as g:
for row in csv.reader(g):
PermitData.add(row[1])
results = Addresses & OnlineData
print 'There are', len(results), 'matching addresses between the two csv files'
for result in sorted(results):
print result
【问题讨论】:
-
不要添加完整的
row[1]值,而是先在每个循环中截断它,以便在尝试交叉之前删除Road、Rd、Court等组件。跨度> -
如果这听起来很荒谬,我很抱歉,但您的意思是使用 append 吗?
-
我会写一个解决方案。
标签: python python-2.7 csv