gpt4 book ai didi

Python 从地址生成纬度/经度点

转载 作者:行者123 更新时间:2023-12-01 23:11:31 33 4
gpt4 key购买 nike

如何在 python 中获取地址并从中生成经纬度坐标?我有几个地址,我想获得经纬度点,但似乎不起作用。

我使用了 geopandas,但它没有返回任何结果。我也对 user_agent 使用什么感到困惑。这是我的代码,

import pandas as pd
from geopy.geocoders import Nominatim

df2['location_lat'] = ""
df2['location_long'] = ""

geolocator = Nominatim(user_agent="myApp")

for i in df2.index:
try:
#tries fetch address from geopy
location = geolocator.geocode(df2['Location'][i])

#append lat/long to column using dataframe location
df2.loc[i,'location_lat'] = location.latitude
df2.loc[i,'location_long'] = location.longitude

except:
#catches exception for the case where no value is returned
#appends null value to column
df2.loc[i,'location_lat'] = ""
df2.loc[i,'location_long'] = ""

感谢任何帮助。谢谢。

最佳答案

您可以直接在 DataFrame 列上使用 apply:

import pandas as pd
from geopy.geocoders import Nominatim

geolocator = Nominatim(user_agent="myApp")

df2 = pd.DataFrame({'Location':
['2094 Valentine Avenue,Bronx,NY,10457',
'1123 East Tremont Avenue,Bronx,NY,10460',
'412 Macon Street,Brooklyn,NY,11233']})

df2[['location_lat', 'location_long']] = df2['Location'].apply(
geolocator.geocode).apply(lambda x: pd.Series(
[x.latitude, x.longitude], index=['location_lat', 'location_long']))

它应该给出:

                                  Location  location_lat  location_long
0 2094 Valentine Avenue,Bronx,NY,10457 40.852905 -73.899665
1 1123 East Tremont Avenue,Bronx,NY,10460 40.840130 -73.876245
2 412 Macon Street,Brooklyn,NY,11233 40.682651 -73.934353

关于Python 从地址生成纬度/经度点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69854674/

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