举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度

人工智能202

用 Tableau 做地图分析时,需要数据源中有标准的地理名称字段,或有准确的经纬度数据。但如果数据源中这两种情况都不满足,只有大概的地址信息,该怎么办呢?

这是一个需要解决的常见问题:如何从非标准地址,或者它们对应的经度和纬度中提取“country-province-city-district-county-detailed地址格式的结构化数据。

[En]

This is a common problem that needs to be solved: how to extract structured data in the format of "country-province-city-district-county-detailed address" from non-standard addresses, or their corresponding longitude and latitude.

其实,可以试试在 Tableau Prep 中调用 Python 脚本,通过高德地图 API 获得地址的经纬度和结构化数据。

原数据 ➤
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
处理后的数据 ➤
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
今天的栗子,我们来分享方法吧!
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:Prep 调用 Python 提取数据中的地址和经纬度。

需使用工具

  • Tableau Prep Builder 2021.1.4
  • Python 3.7
  • tabpy_server 0.2
  • request 2.26

Tableau Prep 流程
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
具体步骤如下:

1、准备工作

➤ 安装 Python (因为 TabPy 暂不支持最新版本的Python,所以安装Python3.7即可)。因为网上的教程很多,此处略过安装过程。

➤ 安装 TabPy,以及 pandas, requests 扩展包,安装方法 ☞ 在 Prep 中调用 Python 处理复杂数据。

➤ 注册高德地址的开发者,创建一个应用,获得查询所需要的 Key。
Tips:amap_location.py 查询脚本,需要将其中的 key 替换成自己申请的高德 key。

举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
2、编写脚本

编写计算相关系数的 Python 脚本,以供 Tableau Prep 调用。

Step 1 :脚本首先必须引入 pandas ,才能识别 Tableau Prep 传递的数据。另外还需要引入 requests 包,以进行查询。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
Step 2 :创建 get_output_schema() 方法,Tableau Prep 需要该访问指明返回的数据对象格式。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
Step 3 :创建单个地址的查询方法 getSingleLocation(),address 是需要查询的地址。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
Step 4 :创建表格遍历方法 getLocation(),通过调用 getSingleLocation() 逐条查询输入的地址表。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
Step 5 : 编写完成后,保存文件名为 amap_location.py。

3、Prep 调用 Python

打开 Tableau Prep,点击顶部菜单"帮助",下拉菜单选择:设置和性能-管理分析扩展程序连接。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
填入第二步建立的 TabPy 服务器信息,分析程序类型选择 Tableau Python(TabPy) 服务器,服务器填默认的 Localhost, 端口默认 9004,用户名和密码没有设置的可以不用填写。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
4、处理数据

在 Tableau Prep 中创建流程,使用示例地址数据 address.xlsx,取出 address 字段。
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
新建脚本步骤,连接类型选择:TableuPython(TabPy)服务器,选择第四步保存的 amap_location.py 文件,并填写 getLocation 方法名。

此时,在右侧窗口出现了经纬度等字段的查询结果。

举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
最后,创建"输出"步骤,把查询结果回写入 excel 表格的 result 工作簿。

举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度

本期的 Tableau 技巧,你 Get 到了吗?赶快试试看吧!
下一期,再见~
举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度

文章部分信息来源于网络,如有侵权请告知

Original: https://blog.csdn.net/weixin_45588393/article/details/123776924
Author: 阿达_优阅达
Title: 举个栗子~Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度

相关文章
Sentence-BERT实战 人工智能

Sentence-BERT实战

引言 本文主要介绍了SBERT作者提供的官方模块的使用实战。 通过Sentence-BERT了解句子表示 Sentence-BERT(下文简称SBERT)用于获取固定长度的句向量表示。它扩展了预训练的...
对抗攻击(Adversarial Attack) 人工智能

对抗攻击(Adversarial Attack)

文章目录 对抗攻击 对抗防御 对抗攻击 图片可以看成一个很长的向量,如果在图片的每个像素上都加上一个很小的pertubation(扰动、杂讯),再把它输入到神经网络,这个时候分类器可能就会误判。 没有...
免费SVN空间 人工智能

免费SVN空间

推荐免费的svn空间(SVN代码托管) 最近研究了国内和国外的免费svn空间,SVN代码托管,SVN在线,代码托管中心,有所心得。 http://www.svn999.com/ [推荐] 国内的,免费...
OpenCV调用USB摄像头的点滴 人工智能

OpenCV调用USB摄像头的点滴

一般项目中使用的相机多为工业相机,其厂商均配备了完善的二次开发SDK,含有丰富的接口。 但本人最近遇到了一款相机,最大的优点就是便宜(是同等工业相机价格的几分之一),遗憾的是没有任何的SDK提供(只有...