举个栗子!Tableau 技巧(223):Prep 调用 Python 提取数据中的地址和经纬度
用 Tableau 做地图分析时,需要数据源中有标准的地理名称字段,或有准确的经纬度数据。但如果数据源中这两种情况都不满足,只有大概的地址信息,该怎么办呢?
这是个普遍存在的问题,需要解决:如何从不太规范的地址中,提取出”国家-省份-城市-区县-详细地址”这样格式的结构化数据,或者它们对应的经纬度。
其实,可以试试在 Tableau Prep 中调用 Python 脚本,通过高德地图 API 获得地址的经纬度和结构化数据。
今天的栗子,我们来分享方法吧!
本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:Prep 调用 Python 提取数据中的地址和经纬度。
需使用工具
Tableau Prep Builder 2021.1.4
Python 3.7
tabpy_server 0.2
request 2.26
Tableau Prep 流程
具体步骤如下:
Step 1 :脚本首先必须引入 pandas ,才能识别 Tableau Prep 传递的数据。另外还需要引入 requests 包,以进行查询。
Step 2 :创建 get_output_schema() 方法,Tableau Prep 需要该访问指明返回的数据对象格式。
Step 3 :创建单个地址的查询方法 getSingleLocation(),address 是需要查询的地址。
Step 4 :创建表格遍历方法 getLocation(),通过调用 getSingleLocation() 逐条查询输入的地址表。
Step 5 : 编写完成后,保存文件名为 amap_location.py。
3.Prep 调用 Python
打开 Tableau Prep,点击顶部菜单“帮助”,下拉菜单选择:设置和性能-管理分析扩展程序连接。
填入第二步建立的 TabPy 服务器信息,分析程序类型选择 Tableau Python(TabPy) 服务器,服务器填默认的 Localhost, 端口默认 9004,用户名和密码没有设置的可以不用填写。
4.处理数据
在 Tableau Prep 中创建流程,使用示例地址数据 address.xlsx,取出 address 字段。
新建脚本步骤,连接类型选择:TableuPython(TabPy)服务器,选择第四步保存的 amap_location.py 文件,并填写 getLocation 方法名。
此时,在右侧窗口出现了经纬度等字段的查询结果。
最后,创建“输出”步骤,把查询结果回写入 excel 表格的 result 工作簿。
今天的 Tableau 技巧,你 Get 到了吗?赶快试试看吧!