2017-04-20 1 views
-1

Ich versuche, Felder in 2 separaten Datensätzen abzugleichen. Sie sind beide Adressfelder. Ein Datensatz kann etwas enthalten wie "532 Sheffield Dr" und der andere kann nur "Sheffield Dr" enthalten. Ein anderes Beispiel ist "US21 Ramp and Hays RD" mit "US 21", "N 25th St und Danville RD" mit "25th St" und so weiter. Im Grunde genommen sollten alle Texte/Zahlen in der Spalte des zweiten Datensatzes mit denen des ersten Datensatzes übereinstimmen, obwohl die Daten im ersten Datensatz möglicherweise zusätzliche Texte/Zahlen enthalten. Ich habe versucht, RegEx zu verwenden, aber war nicht in der Lage, den passenden Code dafür herauszufinden. Wie gehe ich vor?Unstrukturierte Text/Zahlenzusammenführung

+2

Willkommen bei Stackoverflow! Bitte lesen Sie [Wie stelle ich eine gute Frage] (https://stackoverflow.com/help/how-to-ask) –

+0

Können Sie bitte einige zusätzliche Details zur Verfügung stellen? Verwenden Sie Python-Listen? numpige Arrays? Pandas Datenrahmen? – billett

+0

@billett Leider bin ich sehr neu in der Codierung. Ich habe nach Lösungen dafür gesucht und bin auf "Pyapsing" gestoßen. Ich habe versucht, "https://regex101.com/" zu verwenden, um einen relevanten Code zu erstellen. – Cyclops

Antwort

0

Basierend auf Beispiele und was ich die einfachste Art und Weise zu verstehen ist so etwas wie:

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)) 
Verwandte Themen