【问题标题】:How to compare geolocations with different formats?如何比较不同格式的地理位置?
【发布时间】:2019-12-03 02:44:35
【问题描述】:

我正在使用阿姆斯特丹的 JSON 文件来获取不同区域的坐标,并且我想将这些坐标与我用纬度和经度列生成的数据框进行比较。但是格式非常不同,我不确定如何继续。这是 JSON 坐标的格式:

'area' : 'Noord'
'coordinates' :[[[4.971481, 52.325345],
      [4.971263, 52.32558],
      [4.971131, 52.325707],
      [4.970473, 52.326281],
      [4.970254, 52.326163],
      [4.969608, 52.326511],
      [4.96921, 52.326776],
      [4.967541, 52.327751]

这是我的数据框的格式:

house_id      latitude      longitude
1             52.327751     4.967541

我的预期输出是:

house_id      latitude      longitude       area
1             52.327751     4.967541       Noord

基本上,我想将我的 df 的纬度和经度列与 JSON 坐标的值进行比较,如果它们包含在 JSON 坐标中,请将区域名称写入我的“区域”列中的 df。有没有办法做到这一点?

【问题讨论】:

    标签: python json geolocation


    【解决方案1】:

    假设你的 json 在一个字典中,你可以做一个快速的函数:

    def check(x):
        lat,lon = x['latitude'],x['longtiude']
        result = [True for coord in j['coordinates'][0] if [lon,lat] == coord]
        if result:
            return j['area']
        else:
            return None
    
    df['area'] = df.apply(check,axis=1)
    

    输出:

       house_id   latitude  longtiude   area
    0         1  52.327751   4.967541  Noord
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2019-05-11
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多