首页 > 解决方案 > 在熊猫数据框中提取城市、纬度和经度

问题描述

我有一个地址列,其中包含一个地方的完整位置,例如(沙特国王路,Al Khobar 31952 沙特阿拉伯)。我想在新列中提取城市以及另一个新列中的纬度和经度点。

我正在按照以下方法将地址列中的所有值传递给函数,但它不起作用,有什么想法吗?

代码图像

标签: pythonpandasdataframegeocodinggeopy

解决方案


利用:

geolocator = Nominatim(user_agent="StackOverFlow", timeout=3)
df = pd.DataFrame({'locations': ['King Saud Road, Al Khobar 31952 Saudi Arabia',
                                 '123 Main Street, Los Angeles, CA 90034, USA']})
df['location_info'] = df.locations.apply(lambda x: geolocator.geocode(x, addressdetails=True, language='en'))
df['latitude'] = df.location_info.apply(lambda x: x.raw['lat'])
df['longitude'] = df.location_info.apply(lambda x: x.raw['lon'])
df['city'] = df.location_info.apply(lambda x: x.raw["address"]['city'])
df = df.drop(['location_info'], axis=1) 

推荐阅读