python - 数据框行迭代期间出错

标签 python for-loop pandas dataframe

我正在尝试根据数据框中的纬度和经度来定义位置:

    lat        long
  40.712784   -74.005941
  55.755826   37.617300
  41.902783   12.496366

我正在使用 geopy 库,我想将检索位置存储在现有数据框的新第三列中。有这样的事:

    lat        long        location 
  40.712784   -74.005941   New-York
  55.755826   37.617300    Moscow
  41.902783   12.496366    Rome

我执行的代码是:

def take_location():
    geolocator = Nominatim()
    df['location']=''
    for row, index in df.iterrows():
        location= geolocator.reverse("%f, %f" % (row['lat'], row['long']))
        row['location']=location.address
    return df

此行出现问题: ----> 6 location= geolocator.reverse("%f, %f"% (row['lat'], row['long'])) 如下 IndexError:标量变量的索引无效。 我想参数和从行单元格中提取值可能有问题

最佳答案

DataFrame.iterrows() 按顺序给出值 - (index, row) - 但你假设它按顺序出现 (row,index ) ,这是错误的,因此您遇到了问题。你应该使用 -

for index, row in df.iterrows():
    location= geolocator.reverse("%f, %f" % (row['lat'], row['long']))
    row['location']=location.address

关于python - 数据框行迭代期间出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33264389/

相关文章:

java - 需要帮助在 Java 中编写等边三角形代码

python - Pandas read_excel : parsing Excel datetime field correctly

python - 给定两个时间戳,我如何根据 "business minutes"返回增量

python - 如何为 unicode ucs4 构建 numpy

php - 如何在没有 foreach 循环的情况下有效地将子数组作为主数组?

dataframe - 如何在 Julia 中全局使用 for 循环中的数组?

python - 在单元格中使用条件值在 Pandas DataFrame 中创建循环

python - 读取 pandas 数据框中的非结构化字典

python - 如何使用selenium从网页下载嵌入的PDF?

列表列表上的 Python 点乘列表,不使用 numpy