相关疑难解决方法(0)

Pandas Dataframe:根据地理坐标(经度和纬度)连接范围内的项目

我有一个包含纬度和经度的地方的数据框.想象一下,例如城市.

df = pd.DataFrame([{'city':"Berlin", 'lat':52.5243700, 'lng':13.4105300},
                   {'city':"Potsdam", 'lat':52.3988600, 'lng':13.0656600},
                   {'city':"Hamburg", 'lat':53.5753200, 'lng':10.0153400}]);
Run Code Online (Sandbox Code Playgroud)

现在我试图让所有城市都在另一个城市的半径范围内.假设距离柏林500公里,距汉堡500公里等所有城市.我会通过复制原始数据帧并使用距离函数连接来完成此操作.

中间结果有点像这样:

Berlin --> Potsdam
Berlin --> Hamburg
Potsdam --> Berlin
Potsdam --> Hamburg
Hamburg --> Potsdam
Hamburg --> Berlin
Run Code Online (Sandbox Code Playgroud)

分组(减少)后的最终结果应该是这样的.备注:如果值列表包含城市的所有列,那将会很酷.

Berlin --> [Potsdam, Hamburg]
Potsdam --> [Berlin, Hamburg]
Hamburg --> [Berlin, Potsdam]
Run Code Online (Sandbox Code Playgroud)

或者只是一个城市周围500公里的城市数量.

Berlin --> 2
Potsdam --> 2
Hamburg --> 2
Run Code Online (Sandbox Code Playgroud)

由于我对Python很陌生,所以我会很感激任何起点.我很熟悉长距离.但不确定Scipy或Pandas中是否有有用的距离/空间方法.

很高兴,如果你能给我一个起点.到目前为止,我尝试过这篇文章.

更新:这个问题背后的原始想法来自两西格玛连接租赁列表Kaggle比赛.我们的想法是让那些在另一个列表中上市100米.其中a)表示密度,因此表示热门区域; b)如果比较地址,您可以查看是否存在交叉,因此是否存在噪声区域.因此,您不需要完整的项目与项目关系,因为您不仅需要比较距离,还需要比较地址和其他元数据.PS:我没有向Kaggle上传解决方案.我只是想学习.

python latitude-longitude haversine pandas

7
推荐指数
1
解决办法
1941
查看次数

查找数据集中所有点的距离中最近的点-Python

我有一个数据集如下

Id     Latitude      longitude
1      25.42         55.47
2      25.39         55.47
3      24.48         54.38
4      24.51         54.54
Run Code Online (Sandbox Code Playgroud)

我想找到数据集每个点的最近距离。我在互联网上发现了以下距离功能,

from math import radians, cos, sin, asin, sqrt
def distance(lon1, lat1, lon2, lat2):
    """
    Calculate the great circle distance between two points 
    on the earth (specified in decimal degrees)
    """
    # convert decimal degrees to radians 
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
    # haversine formula 
    dlon = lon2 - lon1 
    dlat = lat2 - lat1 
    a = sin(dlat/2)**2 + …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x

2
推荐指数
2
解决办法
5219
查看次数