gpt4 book ai didi

python - 如何使用geopy从坐标中获取邮政编码?

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:04 36 4
gpt4 key购买 nike

下面是我一直在使用的代码。我是个新手。由于使用 API 的配额,我一直只使用数据头进行测试。下面是数据框的快照:

        latitude    longitude
0 -73.99107 40.730054
1 -74.000193 40.718803
2 -73.983849 40.761728
3 -73.97499915 40.68086214
4 -73.89488591 40.66471445

这就是我被绊倒的地方。

train['latlng'] = train.apply(lambda row: '{},{}'.format(row['latitude'], 
row['longitude']), axis=1)
train['geocode_data'] = train['latlng'].map(reverse_geocode)
train['Zip'] =train['latlng'].apply(geolocator.reverse)
train['Zip'].apply(lambda x: pd.Series(x.split(',')))
foo = lambda x: pd.Series([i for i in reversed(x.split(','))])
train['Zip']=train['Zip'].apply(lambda x: str(x))
train['Zip']=train['Zip'].apply(foo)[1]

train

目前,我收到一个错误:

AttributeError:“位置”对象没有属性“split”

我该如何分割位置以便我可以只获取邮政编码?

最佳答案

在geopy版本1.21.0中并使用导入

from geopy.geocoders import Nominatim

我无法使用location.raw["address"]。 location.raw 的示例如下

follows:
{'place_id': 3330757,
'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
'osm_type': 'node',
'osm_id': 368381231,
'boundingbox': ['39.6634459', '39.6934459', '-75.6213155', '-75.5913155'],
'lat': '39.6784459',
'lon': '-75.6063155',
'display_name': 'New Castle County Airport, South Hollow Road, Manor Park, New Castle County, Delaware, 19721, United States of America',
'class': 'aeroway',
'type': 'aerodrome',
'importance': 0.6780150946188139,
'icon': 'https://nominatim.openstreetmap.org/images/mapicons/transport_airport2.p.20.png'}

我用的是location.address.split(",")[-2] 这对我有用。

关于python - 如何使用geopy从坐标中获取邮政编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47824915/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com