当我没有手动收到 运行 代码时,在 Python for 循环中收到 KeyError

Receiving a KeyError in a Python for loop when I do not receive one running the code manually

我正在尝试使用 geopy 库获取旧金山 10 个街区的纬度和经度值。出于某种原因,代码将 运行 单独索引每个社区,但是 returns 当我尝试在整个列中循环它时出现 KeyError。

例如,以下代码 returns 第一个街区的坐标,即加利福尼亚州旧金山金银岛:

geolocator = Nominatim(user_agent = 'sf_explorer')

location = geolocator.geocode(cheap_df['Address'][0])
latitude = location.latitude
longitude = location.longitude
print('The geographical coordinates of Treasure Island, San Francisco are {}, {}.'.format(latitude, longitude))

我想循环遍历整个列并将纬度和经度值附加到两个单独的列表中。以下是我如何将代码调整为 运行 作为 for 循环:

lat = []
lon = []

for i in cheap_df['Address']:
    geolocator = Nominatim(user_agent = 'sf_explorer')
    
    location = geolocator.geocode(cheap_df['Address'][i])
    latitude = location.latitude
    longitude = location.longitude

    lat.append(latitude)
    lon.append(longitude)

但是,在 运行 之后,我得到以下 KeyError,箭头指向第 7 行(以 location 开头的行):

KeyError: 'Treasure Island, San Francisco, California'

有谁知道我做错了什么,我该如何解决?非常感谢任何帮助!

icheap_df['Address'] 的元素,不是索引。您不应该尝试将其用作索引,只需按原样使用即可。

location = geolocator.geocode(i)