python - 如何计算两个 ZIP 之间的距离?

标签 python r pandas sas distance

我有一个美国邮政编码列表,我必须计算所有邮政编码点之间的距离。它是一个 6k 的 ZIP 长列表,每个实体都有 ZIP、城市、州、纬度、经度、面积和人口。

所以,我必须计算所有点之间的距离,即; 6000C2 组合。

这是我的数据示例

enter image description here

我已经在 SAS 中尝试过这个,但它太慢且效率低下,因此我正在寻找一种使用 Python 或 R 的方法。

任何线索将不胜感激。

最佳答案

Python解决方案

如果您有邮政编码的相应纬度和经度,您可以使用 Haversine 公式直接计算它们之间的距离,使用“mpu”库确定球体上两点之间的大圆距离。

示例代码:

import mpu

zip_00501 =(40.817923,-73.045317)
zip_00544 =(40.788827,-73.039405)

dist =round(mpu.haversine_distance(zip_00501,zip_00544),2)
print(dist)

您将获得以公里为单位的最终距离。
输出:
3.27

附注。如果您没有邮政编码的相应坐标,您可以使用“uszipcode”库的“SearchEngine”模块获得相同的坐标(仅适用于美国邮政编码)
from uszipcode import SearchEngine
#for extensive list of zipcodes, set simple_zipcode =False
search = SearchEngine(simple_zipcode=True)

zip1 = search.by_zipcode('92708')
lat1 =zip1.lat
long1 =zip1.lng

zip2 =search.by_zipcode('53404')
lat2 =zip2.lat
long2 =zip2.lng

mpu.haversine_distance((lat1,long1),(lat2,long2))

希望这可以帮助!!

关于python - 如何计算两个 ZIP 之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52292765/

相关文章:

r - 使用 R 处理入院数据(第二部分)

Python Pandas 时间戳减法与 Numpy

python - json.dump() 在 Windows 和 Linux 上的不同行为

python - 如何在Django View 中存储全局变量

r - 增加 R 中 ggplot2 scale_colour_gradient 的对比度?

r - R 中的标记似然等高线图

python - 将 Pandas DataFrame 转换为稀疏矩阵

python - 将列从一个数据框映射到另一个数据框以创建新列

python - 如何阻止命令提示符在 python 中关闭?

python - 是否可以从 C++ header 中自动包含 CMake + SWIG + Python?