使用 python 提取纬度和经度
Extracting Latitude and Longitude using python
我正在尝试从实际地址中提取纬度和经度。
我看过一些帮助我编写以下脚本的视频,但我有一个错误显示
Lat=Geocode_Result[0]["geometry"]["Location"]["Lat"]
KeyError: 'Location'
import pandas as pd
import googlemaps code
df=pd.DataFrame({'Address':['9 RUE DU FOSSE, L-7772, luxembourg', '37 RUE DE LA GARE,
L-7535, luxembourg']}) # Creating a dataframe with 2 addresses (its just an example)
Gmaps_key=googlemaps.Client("xxxxxxxxx")
df['Latitude'] = None
df['Longitude'] = None
for i in range(len(df)):
Geocode_Result=Gmaps_key.geocode(df.loc[i,'Address']) # sending a request for each of the addresses
Lat=Geocode_Result[0]["geometry"]["Location"]["Lat"] # Extracting the Latitude information
Long=Geocode_Result[0]["geometry"]["Location"]["Long"] # Extracting the Longitude information
df.loc[i,'Latitude'] = Lat # Pass the information into the DataFrame
df.loc[i,'Longitude'] = Long
print(df)
错误是说 Geocode_Result[0]["geometry"]
中没有键 Location
。尝试打印对象?
print(Geocode_Result[0]["geometry"])
文档对您得到的响应有何看法?
此外,尝试使用 location
而不是 Location
?
您需要先安装geopy(pip install geopy)并导入Nominatim。我对您的代码进行了一些修改以获得输出。
import pandas as pd
from geopy.geocoders import Nominatim
df=pd.DataFrame({'Address':['9 RUE DU FOSSE, L-7772, luxembourg', '37 RUE DE LA GARE,L-7535, luxembourg']})
df['Latitude'] = None
df['Longitude'] = None
locator = Nominatim(user_agent="myGeocoder")
for i in range(len(df)):
location = locator.geocode(df.loc[i,'Address'])
df.loc[i,'Latitude'] = location.latitude
df.loc[i,'Longitude'] = location.longitude
print(df)
输出:
Address Latitude Longitude
0 9 RUE DU FOSSE, L-7772, luxembourg 49.789 6.06569
1 37 RUE DE LA GARE,L-7535, luxembourg 49.7684 5.52118
我正在尝试从实际地址中提取纬度和经度。
我看过一些帮助我编写以下脚本的视频,但我有一个错误显示
Lat=Geocode_Result[0]["geometry"]["Location"]["Lat"]
KeyError: 'Location'
import pandas as pd
import googlemaps code
df=pd.DataFrame({'Address':['9 RUE DU FOSSE, L-7772, luxembourg', '37 RUE DE LA GARE,
L-7535, luxembourg']}) # Creating a dataframe with 2 addresses (its just an example)
Gmaps_key=googlemaps.Client("xxxxxxxxx")
df['Latitude'] = None
df['Longitude'] = None
for i in range(len(df)):
Geocode_Result=Gmaps_key.geocode(df.loc[i,'Address']) # sending a request for each of the addresses
Lat=Geocode_Result[0]["geometry"]["Location"]["Lat"] # Extracting the Latitude information
Long=Geocode_Result[0]["geometry"]["Location"]["Long"] # Extracting the Longitude information
df.loc[i,'Latitude'] = Lat # Pass the information into the DataFrame
df.loc[i,'Longitude'] = Long
print(df)
错误是说 Geocode_Result[0]["geometry"]
中没有键 Location
。尝试打印对象?
print(Geocode_Result[0]["geometry"])
文档对您得到的响应有何看法?
此外,尝试使用 location
而不是 Location
?
您需要先安装geopy(pip install geopy)并导入Nominatim。我对您的代码进行了一些修改以获得输出。
import pandas as pd
from geopy.geocoders import Nominatim
df=pd.DataFrame({'Address':['9 RUE DU FOSSE, L-7772, luxembourg', '37 RUE DE LA GARE,L-7535, luxembourg']})
df['Latitude'] = None
df['Longitude'] = None
locator = Nominatim(user_agent="myGeocoder")
for i in range(len(df)):
location = locator.geocode(df.loc[i,'Address'])
df.loc[i,'Latitude'] = location.latitude
df.loc[i,'Longitude'] = location.longitude
print(df)
输出:
Address Latitude Longitude
0 9 RUE DU FOSSE, L-7772, luxembourg 49.789 6.06569
1 37 RUE DE LA GARE,L-7535, luxembourg 49.7684 5.52118