python - 用不同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文件截图:
解决方案
欢迎来到 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,因为它不在标准库中
推荐阅读
- java - 获取包含特定字符的所有文件夹
- python - Python:带有参数的队列方法wait_for谓词
- python - Python MySQL连接到数据库错误
- javascript - 仅在尚未打开的情况下打开新选项卡
- c++ - 如何比较指针和字符串的向量?
- eclipse - 我们可以使用 MDSE 方法实现关于冲突 NFR 的 UML 配置文件吗?
- python-3.x - 如何在 Python GLib 中设置多个标志?
- java - 更改密钥库中私钥的证书
- github - why is there a GitHub folder on my computers boot drive?
- sql - 两个表上的 Postgresql 交叉表