使用不同DataFrames Python熊猫的经度和纬度计算Km

时间:2018-08-28 11:07:20

标签: python pandas csv dataframe data-analysis

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

在stations.csv中,我有两个名为o_city(起源城市)和d_city(目标城市)的列,这两个列为我提供了我需要在citys.csv中寻找的城市的ID。

在citys.csv中,每个城市都有纬度和经度。

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

csv文件的屏幕截图:

ticket_data.csv

cities.csv

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!在您的城市数据框中,假设在这里被称为 city_df ;对于每一行,您都可以使用欧几里得几何中的所谓的Haversine距离公式来计算地球表面上两个坐标对之间的距离。这是一些虚拟的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'表示法。这样, distance 的输出值将以km为单位单位。

希望这可以帮助您更进一步地解决问题!

P。 S.-您可能需要安装Haversine,因为它不在标准库中