2017-04-20 58 views
-1

我想匹配2个独立数据集中的字段。他们都是地址字段。一个数据集可能包含“532 Sheffield Dr”之类的内容,另一个数据集可能只包含“Sheffield Dr”。另一个例子是“US21 Ramp and Hays RD”与“US 21”,“N 25th St and Danville RD”以及“25th St”等。因此,基本上,即使第一个数据集中的数据可能包含一些额外的文本/数字,第二个数据集中列中的所有文本/数字都应该与第一个数据集中的文本/数字匹配。我一直在尝试使用RegEx,但一直未能找出适当的代码。我如何去做这件事?非结构化文本/数字合并

+2

欢迎的StackOverflow!请阅读[我如何问一个好问题](https://stackoverflow.com/help/how-to-ask) –

+0

您能否提供一些额外的细节?你在使用Python列表吗? numpy数组?熊猫数据框? – billett

+0

@billett不幸的是,我对编码非常陌生。我一直在寻找解决方案,我遇到了'pyparsing'。我一直在尝试使用'https://regex101.com/'来提供相关的代码。 – Cyclops

回答

0

根据你的例子,我的理解最简单的方法是一样的东西:

s1 = ["532 Sheffield Dr", "US21 Ramp and Hays RD", "N 25th St and Danville RD"] 
s2 = ["Sheffield Dr", "US 21", "25th St"] 

for item2 in s2: 
    for item1 in s1: 
     if item2 in item1 or item2.replace(' ', '') in item1: 
      print('%s in %s' % (item2, item1))