如何从地址获取经纬度

时间:2021-02-11 17:44:30

标签: pandas api request geopandas geocode

我有一个像这样地址的数据框:

codePostalEtablissement libelleCommuneEtablissement Adresses
    0   67000   STRASBOURG  2 ALLEE DE LA ROBERTSAU, 67000
    1   67000   STRASBOURG  17 RUE DU VIEUX MARCHE AUX GRAINS, 67000, STRASBOURG
    2   67000   STRASBOURG  11 RUE DE BERNE, 67000
    3   67000   STRASBOURG  11 PLACE DES HALLES, 67000
    4   67000   STRASBOURG  28 AVENUE DES VOSGES, 67000
    5   67000   STRASBOURG  14 RUE MASSENET, 67000
    6   67000   STRASBOURG  43 RUE ERCKMANN CHATRIAN, 67000
    7   67000   STRASBOURG  17 RUE DE VERDUN, 67000
    8   67000   STRASBOURG  1 RUE DU TRAVAIL, 67000
    9   67000   STRASBOURG  1 RUE SAINT ARBOGAST, 67000
    10  67000   STRASBOURG   RUE JACQUES PEIROTES, 67000
    11  67000   STRASBOURG  6 RUE SAINT MAURICE, 67000
    12  67000   STRASBOURG  6 RUE SAINT GOTHARD, 67000
    13  67000   STRASBOURG  1 RUE PAUL COLLOMP, 67000
    14  67000   STRASBOURG  16 RUE DE SOLEURE, 67000
    15  67000   STRASBOURG   RUE SAINT GOTHARD, 67000
    16  67000   STRASBOURG  1 RUE SCHUMANN, 67000
    17  67000   STRASBOURG  17 RUE BEETHOVEN, 67000
    18  67000   STRASBOURG  21 RUE SLEIDAN, 67000
    19  67000   STRASBOURG  11 RUE D INGWILLER, 67000
    20  67000   STRASBOURG  5 BOULEVARD DE LA DORDOGNE, 67000

我想从这些地址获得经纬度。我已经完成了以下代码:

df['Latitude'] = None
df['Longitude'] = None
locator = Nominatim(user_agent="my_user_agent")
for i in range(len(df)):
    location = locator.geocode(df.loc[i,'Adresses'])
    df.loc[i,'Latitude'] = format(location.latitude)
    df.loc[i,'Longitude'] = format(location.longitude)

但它给了我以下错误:

df['Latitude'] = format(location.latitude)
AttributeError: 'NoneType' object has no attribute 'latitude'

这是由于请求无法识别第 19 行。有没有其他方法可以快速免费地做到这一点?

0 个答案:

没有答案
相关问题