python 使用Pandas和Geopy将纬度和经度组织到单独的列中以对地址列表进行地理编码

ggazkfy8  于 2023-02-07  发布在  Python
关注(0)|答案(1)|浏览(120)

我已经在Python中设置了一个地理编码过程,以确定csv文件中地址列表的坐标。我已经设置好了所有这些并进行了地理编码,但是,我很难弄清楚如何将纬度和经度放入单独的列中。我创建了一个“点”列,根据Geopy自述文件,使用lambda存储地理编码点:
df [“点”] = df [“位置”].apply(lambda位置:元组(loc.point)(如果锁定,否则无)
现在的数据看起来像这样:(27.9477595,-82.458444,0.0)
虽然这对我来说很简单,但我似乎无法将上面示例数据中的每个坐标放入单独的列中,我希望能够有一个纬度列和一个经度列,这样它就可以更好地在Folium中进行转换。
同样,这很可能是直截了当的,希望有人能帮助我。相反,我还没有研究什么叶可以接受的位置数据,只假设我需要得到它到单独的坐标。如果洞察叶使我的问题没有意义,比这是罚款以及,但我不确定。
我希望纬度列和经度列各占一列,而不是一列中的合并数据。
运行地理编码的当前代码:

tqdm.pandas()
    geocode = RateLimiter(geolocator.geocode, swallow_exceptions=True)
    df_trainers['gcode'] = df_trainers['full_address'].progress_apply(geocode)
    df_trainers['point'] = df_trainers['gcode'].apply(lambda loc: tuple(loc.point) if loc else None)
zwghvu4y

zwghvu4y1#

可以使用以下命令将坐标列转换为三列:

df_trainers[['latitude', 'longitude', 'altitude']] = pd.DataFrame(df_trainers['point'].tolist(), index=df_trainers.index)

相关问题