ライブラリusaddress
を使用して、私が持っているファイルのセットからアドレスを解析しています。最終的な出力は、列名が住所の一部(例:ストリート、シティ、州)を表し、行は抽出した個々の住所を表すデータフレームになります。たとえば:並べ替えられていないタプルのリストをパンダに変換するDataFrame
addr = ['123 Pennsylvania Ave NW Washington DC 20008',
'652 Polk St San Francisco, CA 94102',
'3711 Travis St #800 Houston, TX 77002']
と私は
info = [usaddress.parse(loc) for loc in addr]
「情報」は、このように見えるタプルのリストのリストであるがUSAddressという使用してそれらを抽出します。
は、私はアドレスのリストを持っていると仮定します:
[[('123', 'AddressNumber'),
('Pennsylvania', 'StreetName'),
('Ave', 'StreetNamePostType'),
('NW', 'StreetNamePostDirectional'),
('Washington', 'PlaceName'),
('DC', 'StateName'),
('20008', 'ZipCode')],
[('652', 'AddressNumber'),
('Polk', 'StreetName'),
('St', 'StreetNamePostType'),
('San', 'PlaceName'),
('Francisco,', 'PlaceName'),
('CA', 'StateName'),
('94102', 'ZipCode')],
[('3711', 'AddressNumber'),
('Travis', 'StreetName'),
('St', 'StreetNamePostType'),
('#', 'OccupancyIdentifier'),
('800', 'OccupancyIdentifier'),
('Houston,', 'PlaceName'),
私は各リストを希望します(ob 「info」)と、タプルペアの1の値を値とする各タプルペアの2つの値とを含む。注:インナーリストのリンクは、すべてのアドレスがすべての情報を持っているわけではないため、必ずしも同じではありません。
ご協力いただければ幸いです。
おかげ
これは、リストのタプルが順序付けされていないか、またはまばらなのです。 'OccupancyIdentifier'は3番目の項目にのみ現れ、それは2回現れるので、(value、key)の単純なリストではないので、複数の隣接するサブ値を連結しなければなりません – smci