【问题标题】:iterate pandas series with geocoders使用地理编码器迭代 pandas 系列
【发布时间】:2017-10-23 18:39:53
【问题描述】:

我正在尝试遍历 pandas 中的国际地址数据框,将每一行传递给地理编码器,解析并保存结果。但是,每一行都返回相同的结果,我不知道为什么。当我尝试像3327 WEST 2ND AVE VANCOUVER BC V6R,1 这样的示例时,地理编码器会按预期解析值,但此迭代不起作用。

import geocoder
g = 'GOOGLE_API_KEY'

for i, row in df.iterrows():
    result = geocoder.google(df, key=g)
    df.set_value(i, 'address', result.address)
    df.set_value(i, 'city', result.city)
    df.set_value(i, 'state', result.state)
    df.set_value(i, 'postal', result.postal)
    df.set_value(i, 'country', result.country)

【问题讨论】:

  • 我对@9​​87654323@ 并不完全熟悉,但是看看你的for 循环,似乎每次迭代都会返回相同的值,因为result = geocoder.google(df, key=g) 这一行在迭代之间没有任何变化。 result = geocoder.google(df.loc[i], key=g) 会让你靠近吗?
  • 解决了。你就是那个男人@johnchase

标签: python google-maps pandas google-geocoder


【解决方案1】:

您似乎没有在每个 for 循环中更新查询

尝试将result = geocoder.google(df, key=g) 替换为result = geocoder.google(row, key=g)

import geocoder
g = 'GOOGLE_API_KEY'

for i, row in df.iterrows():
    result = geocoder.google(row, key=g)
    df.set_value(i, 'address', result.address)
    df.set_value(i, 'city', result.city)
    df.set_value(i, 'state', result.state)
    df.set_value(i, 'postal', result.postal)
    df.set_value(i, 'country', result.country)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-08
    • 2022-09-29
    • 2016-09-22
    • 2013-09-28
    • 2012-08-15
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    相关资源
    最近更新 更多