2017-09-04 53 views
0

我有两个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 

回答

0

这是很简单计算两点间的距离(see here)。 您也可以使用GeoPy

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

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