Mam dane atrybutów z nazwami właścicieli. Muszę dwa razy wybrać dane zawierające nazwisko .
Na przykład mogę mieć nazwę właściciela o treści „ BENNETT MCCARL & ARNETTE BENNETT ”.
Chciałbym wybrać dowolne wiersze w tabeli atrybutów, które mają powtarzające się nazwisko, takie jak powyższy przykład. Czy ktoś wie, jak mogę wybrać te dane?
Odpowiedzi:
Wyrażenie kalkulatora pola oparte na tej odpowiedzi
„================================================= =
Zwróci maksymalną liczbę takich samych słów w ciągu
źródło
Aby to zrobić, możesz użyć modułu kolekcji Python i kursora aktualizacji. Ta metoda dodaje nowe pole i wypełnia je
1
jeśli są jakieś duplikaty, w przeciwnym razie a,0
jeśli nie ma duplikatów.źródło
Co z użyciem
re
iset
ustawieniem flagi (tutaj 0 i 1) w pythonie -re
wyodrębni wszystkie nazwy (ostatnie i pierwsze) zBENNETT MCCARL & ARNETTE BENNETT
zewnątrz&
. Dopasowanie wzorcare
ma najwyższy priorytet - możesz używać,re
jak chcesz.I zadzwoń
sorter( !N! )
** Zobacz, jak
regex
chwyta słowa naLIVE DEMOZauważ, że wszystkie te odpowiedzi dotyczą problemu, zakładając, że twoje dane są zdezynfekowane, tj. Mają odpowiednią przestrzeń między słowami, ale co jeśli twoje dane są podobne,
BENNETTMCCARL&ARNETTEBENNETT
to wszystko by się nie udało. W takim przypadku może być konieczne użycie algorytmu drzewa sufiksów i na szczęście Python ma trochę biblioteki, jak tutaj .źródło
Zakładając, że dane źródłowe to FeatureClass / Table w pliku GeoDatabase, poniższe zapytanie wybierze wymagane wiersze:
name
to pole, które właśnie to nazwałamname
. Pierwsza część testuje lewą stronę, druga część testuje prawą. To zapytanie jest oczywiście zakodowane na sztywno w poszukiwaniu BENNETT. Jeśli musisz wybrać inne nazwiska, mam nadzieję, że uda Ci się ustalić, co należy zmienić?źródło