不知道大家会在什么场合使用地图可视化,对我来说地图可视化的优点除了它可以展示海量的位置数据,更重要的是它可以很酷很炫,给人一种赏心悦目的舒适感。如下是J哥做的一个简单热力图:

热力地图

制作此类可视化地图的前提是获得海量的经纬度数据,数据从何而来?当然是腾讯地图、高德地图和百度地图这些大家耳熟能详的平台。所以今天给大家分享用Python批量获取经纬度的三种方法,并分别评测它们的效率。

一、腾讯地图

首先,咱们需要在腾讯位置服务平台注册并获得一个key,作为位置数据调用的密匙。步骤如下:

腾讯地图开放平台

1、构造函数

获得key以后,咱们就可以构造API数据请求函数tengxun(),将json格式数据中的经纬度解析出来即可,Python代码如下:

import requestsdef tengxun(addr):url = "https://apis.map.qq.com/jsapi?"   #腾讯地图API接口para = {"qt": "geoc","addr":addr, #传入地址参数"output": "json","key": "D7EBZ-NHYKX-UAH4A-74TW4-6M2JE-UHFLY", #即腾讯地图API的key"pf":"jsapi","ref":"jsapi"}req = requests.get(url,para) #请求数据req = req.json() #转为json格式#print(req)m = req["detail"]g = f"{m['pointx']},{m['pointy']}" #解析到经纬度数据print(g)return g
tengxun(addr="深圳市")

传入自变量“深圳市”,运行Python代码,即可获得深圳市的经纬度数据:

'113.883080,22.553290'

2、读取数据

函数构造好以后,导入准备好的excel文件,文件包含广州500所学校的地址数据。

import pandas as pd
df1 = pd.read_excel("gz_school.xlsx")
df1.head()

数据预览:

3、应用函数

将学校数据中的地址列应用于前文构造的函数,批量获取500所学校的经纬度数据并进行程序计时。

import time
time_start = time.time() #程序起始时间
df1['经纬度']=df1['address'].apply(tengxun) #调用函数
time_end = time.time() #程序结束时间
t = time_end-time_start #运行时间
print('共用时%s秒'%t)

通过腾讯地图批量解析500个地址获取经纬度数据共用时约52.40秒,平均1秒钟可以获取9个地址的经纬度。

共用时52.39904499053955秒

4、保存数据

获取到经纬度数据后,保存为excel文件。

df1.head()
df1.to_excel('result.xlsx',index = False)

数据预览:

二、高德地图

同样的,高德也需要提前在高德开放平台注册并创建应用,获取你的专属key。

高德地图开放平台

1、构造函数

import pandas as pd
import requests
import time
import csv
import jsondef gaode(addr):para = {'key':'你自己的',  #高德地图开放平台申请的key'address':addr #传入地址参数}url = 'https://restapi.amap.com/v3/geocode/geo?' #高德地图API接口req = requests.get(url,para)req = req.json()print('-' * 30)m = req['geocodes'][0]['location']print(m)return m
gaode(addr="深圳")

2、应用函数

df2 = pd.read_excel('gz_school.xlsx') #读取地址数据
time_start = time.time()
df2['经纬度'] = df2['address'].apply(gaode) #调用函数
time_end = time.time()
t = time_end-time_start
print('共用时%s秒'%t)

通过高德地图批量解析500个地址获取经纬度数据共用时约37.74秒,平均1秒钟可以获取13个地址的经纬度,解析速度高于腾讯地图。

共用时37.740272998809814秒

三、百度地图

百度地图批量获取经纬度方法与高德地图一致。

百度地图开放平台

1、构造函数

import pandas as pd
import requests
import time
import csv
import jsondef baidu(addr):url = "http://api.map.baidu.com/geocoding/v3/?" #百度地图API接口para = {"address": addr, #传入地址参数"output": "json","ak": "你自己的" #百度地图开放平台申请ak}req = requests.get(url,para)req = req.json()#print(req)print('-' * 30)m = req["result"]["location"]g = f"{m['lng']},{m['lat']}"print(g)return g
baidu(addr="深圳")

2、应用函数

df3 = pd.read_excel('gz_school.xlsx')
time_start = time.time()
df3['经纬度'] = df3['address'].apply(baidu)
time_end = time.time()
t = time_end-time_start
print('共用时%s秒'%t)

通过百度地图批量解析500个地址获取经纬度数据共用时约24.06秒,平均1秒钟可以获取20个地址的经纬度,解析速度高于高德地图和腾讯地图。

共用时24.0550799369812秒

四、小结

仅从解析速度来看,百度地图效率高于高德地图,高德地图高于腾讯地图。当然,解析速度还要考虑程序运行时的网络状况、电脑自身配置等因素。另外,地址数据解析还要考虑准确率,只有综合考虑解析速度和准确率,才能更加客观地判断哪一种方法最优,准确率方面的评测将在以后的文章中进行分享。

●Python 会交互的绘图库 Plotly!

●取数,取数,取个屁啊!

后台回复“入群”即可加入小z数据干货交流群

用Python分析经纬度数据相关推荐

  1. python大数据分析实例-如何用Python分析大数据(以Twitter数据挖掘为例)

    原标题:如何用Python分析大数据(以Twitter数据挖掘为例) 来源:艾翻译(http://www.itran.cc/) 原文标题:Twitter Data Mining: A Guide to ...

  2. LIGO 用 Python 分析引力波数据

    LIGO 用 Python 分析引力波数据 美国科学家11日宣布,他们去年9月首次探测到引力波.这一发现印证了物理学大师爱因斯坦100年前的预言.宣布这一发现的,是激光干涉引力波天文台(LIGO)的负 ...

  3. 如何去使用Python分析股票数据?学到就是赚到

    对于炒股的同学来说,必须会看懂数据才能避免入坑.今天小千就来教大家如何去使用Python分析股票数据,学到就是赚到.(小千提醒,股市有风险,请谨慎投资) 这次的美股例子就选择了美国显卡制造商英伟达,其 ...

  4. python sci数据_scanpy学习笔记:用Python分析单细胞数据

    Scanpy 是一个基于 Python 分析单细胞数据的软件包,内容包括预处理,可视化,聚类,拟时序分析和差异表达分析等.本文翻译自 scanpy 的官方教程 Preprocessing and cl ...

  5. 大数据如何使用Python分析微信数据

    截至2020年第二季度,微信拥有超过27亿活跃用户.这意味着,如果你正在阅读大数据如何使用Python分析微信数据,那么你很可能是微信用户.但是,你到底有多少微信用户?你实际发布了多少?我们可以使用P ...

  6. 零基础小白如何使用Python分析调查数据

    进行调查和民意调查是收集数据和深入了解诸如客户为何离开我们网站等问题的最佳方法之一.还是为什么选民会吸引这位候选人?但是分析调查数据可能是一个真正的挑战! 在本教程中,我们将逐步介绍如何使用Pytho ...

  7. python分析股票数据 彤_Python数据分析:股票数据

    最近股市比较火,我7月初上车了,现在已经下了.中间虽然吃了点肉,但下车的时候都亏进去了,最后连点汤都没喝着. 这篇文章我们就用它python 对股票数据做个简单的分析.数据集是从1999年到2016年 ...

  8. python 分析大数据

    Python是一种高级编程语言,可用于分析大数据.常用的 Python 库如 Pandas 和 NumPy 可用于数据清洗.数据分析和数据可视化.此外,还有许多其他库,如 Scikit-learn.T ...

  9. python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

最新文章

  1. 十大排序算法 导图总结
  2. 分析隐藏在比特币区块链中的Pony CC服务器
  3. python如何读二进制文件_python怎么读二进制文件
  4. 用PHP做一道单选选择题的页面,【大神看过来】根据一个用PHP做的单选投票,改成多选,且可显示...
  5. 知乎学了python_为什么要学 Python?
  6. [转自360kr]如何才能进入Facebook工作?公司内部工程师告诉你
  7. 华为推出鸿蒙超级系统,华为鸿蒙系统正式发布!十个人里竟然只有两个人支持?...
  8. 深夜,基友给我发了个某短视频app,我没忍住把它给...
  9. python抽取html中的链接
  10. Python(十七):python的编程规范、PEP8
  11. Spring Cloud Bus消息总线(学习总结)
  12. python模板匹配_python实现模板匹配
  13. 使用FileTypesMan修复office关联图标
  14. Java多线程面试题(面试必备)
  15. 云网融合驱动数据中心技术聚变
  16. 浅析web应用防火墙的反向代理部署
  17. 使用python+opencv写一个简单的条形码识别代码
  18. 波士顿房价预测(终版讲解)
  19. Cisco Packet Tracer汉化处理
  20. Dick and Jane ZOJ1110

热门文章

  1. github项目ratel:JAVA实现斗地主
  2. C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
  3. 【思维导图】LAMPer技能树
  4. 海量数据大课学习笔记(2)-不在其位要谋其政,技术Leader能力模型提升-小滴课堂
  5. Tensorflow-Gpu安装 基于gtx1060
  6. iOS视频播放的基本方法
  7. linux python3安装包_在 Linux 中安装 Python3
  8. 使用Robot Framework实现多平台自动化测试
  9. sklearn.datasets.make_blobs 生成符合高斯分布的点
  10. TI男选隐形眼镜之机器学习