首页 > 解决方案 > 用不同DataFrames Python Pandas的经纬度计算公里

问题描述

我有 4 个数据框(ticket_data.csv、providers.csv、stations.csv 和 city.csv)

在stations.csv中,我有2个colls称为o_city(始发城市)和d_city(目的地城市),这两个colls给了我需要在city.csv中寻找的城市的ID

在 citys.csv 我有每个城市的纬度和经度。

如何计算每张票的 o_city 和 d_city 之间的距离?我尝试使用 pyproj 但我没有找到一种方法让它适用于每张票..

csv文件截图:

票证数据.csv

城市.csv

标签: pythonpandascsvdataframedata-analysis

解决方案


欢迎来到 StackOverflow!在您的城市数据框中,假设此处称为city_df;对于每一行,您可以使用欧几里得几何中称为半正弦距离公式的方法来计算地球表面上两个坐标对之间的距离。这是一些虚拟 Python3 代码的示例,大致说明了您可以如何进行此操作(仅使用两对坐标以方便通信):

from haversine import haversine

distance = haversine((city_df[origin_lat][0], city_df[origin_lon][0]), (city_df[destination_lat][0], city_df[destination_lon][0]))

坐标必须采用十进制度表示法,如43.9202而不是 43* 38" 67' 表示法。鉴于此,距离的输出值将以公里为单位。

希望这可以帮助您更接近解决您的问题!

PS - 您可能需要安装 hasrsine,因为它不在标准库中


推荐阅读