基于与变量的接近度匹配数据集

时间:2017-09-04 21:58:28

标签: python jupyter-notebook

我有两个csv数据集,我试图合并在一起。第一个数据集包含非常规的城市名称(即:曼哈顿或皇后区,应该是纽约)及其纬度/经度。第二个数据集包含传统的城市名称及其纬度/经度数据。我需要将这两个数据集合并在一起,以便数据集1中的非常规城市名称与基于最近纬度/经度接近度的传统城市名称(数据集2)相匹配。

有人可以指导我如何编程此问题吗?

由于

数据集1样本:

city state latitude longitude
Manhattan NY 42.436503 -71.608599
Long Island NY 54.266667 -6.916667
East Los Angeles CA 56.2 10.683333

数据集2样本:

city state latitude longitude
New York NY 40.75 -74
Los Angeles CA 33.97 -118.24

产生的数据集1:

city state latitude longitude new_city
Manhattan NY 42.436503 -71.608599 New York
Long Island NY 54.266667 -6.916667 New York
East Los Angeles CA 56.2 10.683333 Los Angeles

1 个答案:

答案 0 :(得分:0)

非常简单来计算两个点之间的距离(see here)。 您也可以使用GeoPy

因此,如果您的数据集不是太大,您只需计算第一个和第二个数据框架中城市之间的距离,并保持两个城市之间的距离最短。

您已经可以按状态进行过滤,以避免为每个元组计算这些距离。