【问题标题】:How to apply Geopy in a pandas column?如何在熊猫列中应用 Geopy?
【发布时间】:2021-11-20 22:33:44
【问题描述】:

我的 DataFrame 'df' 有一个带有城市名称的列 df['Cidade'],我想使用 Geopy 找出每个城市的纬度和经度。以下代码适用于单个城市输入:

address='Pacoti'
geolocator = Nominatim(user_agent="Your_Name")
location = geolocator.geocode(address)
print(location.address)
print((location.latitude, location.longitude))

输出:

Pacoti, Região Geográfica Imediata de Redenção-Acarape, Região Geográfica Intermediária de Fortaleza, Ceará, Região Nordeste, 62770-000,巴西(-4.2253561,-38.9208352)

所以我尝试创建一个函数:

def lat_long(x):
  address= x
  geolocator = Nominatim(user_agent="Your_Name")
  location = geolocator.geocode(address)
  return location.latitude, location.longitude

然后我使用'map'函数:

df['Cidade'].map(lat_long)

但我收到以下错误:

AttributeError: 'NoneType' object has no attribute 'latitude'

我做错了什么?

【问题讨论】:

    标签: python pandas map-function geopy nominatim


    【解决方案1】:

    当您将它们全部映射到其中时,该数据框中可能有一个“坏”条目,当您使用对象经纬度时,它会给您一个无对象。检查是否是这种情况,并为您提供解决方法:

    if location is none:
      print("something")
    

    【讨论】:

    • 谢谢!如何将 NoneType 转换为字符串?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2017-06-12
    • 1970-01-01
    • 2022-11-13
    • 2021-05-27
    • 2019-03-22
    相关资源
    最近更新 更多