fme结合python-pandas实现图形数据和表格数据的模糊匹配挂接
1、需求分析
1.shp为原始数据,包含了图形信息和属性信息,可以看到姓名作为挂接项,包含的干扰项目很多,让我们根本没有办法用正则表达式过滤出来
2.xlsx为表格数据,里面包含了我们需要挂接的属性,我们需要将表格的属性通过姓名模糊匹配挂接到shp中。
2、需要工具
完成这个需求,我们需要有fme,以及安装到fme里面的python3.7 pandas包。不会安装的小伙伴可以看我第一期的博客内容,里面有fme安装pandas详细介绍。
3、实现过程
1、核心转换器为pythoncaller,但是因为fme特性的原因,没有办法生成两个接口来分开处理两组数据,所以我们需要用featuremerger来讲属性合并。
用counter造一个随机数来作为关联基础。我们可以看到合并之后属性并不是对应的。
因为这只是简单的将两组数据组合了起来,接下来需要用pandas来进行数据处理。
2、直接这是pythoncalller源码
原理是将我需要挂接的表格数据转换为字典格式,且key值为姓名,value为count的自然数
然后用pandas数据处理三板斧的经典方法apply,将我们的shp属性,按行要素一行一行的输入进去merge_fuc函数中,匹配字典里面的符合项,将字典value值(自然数)匹配出来。然后两组数据都获得了对应的自然数,再通过pandas的merge方法匹配出二维数组,最后将匹配出来的二维数组输出为字段要素。
写出后可以看到属性是挂接上去了。
4、难点分析
这个案例一个包含了三个难点,请教了多位大佬,才将这三个难点解决。同时也感谢fme群的几位大佬的指点,才让我实现了这个案例。
1、如何实现模糊匹配,这也是这个模板的核心所在,使用了re的search方法,通过apply传参逐行查询。
2、pandas的datafrom数据格式如何转换到fme的要素中:
将datafrom格式的数据转换成list格式,然后按个数遍历,然后添加要素。
3、apply方法如何在fme中实现传参数:这其实是这个基础问题,涉及python的类的基础知识,要实现参数的传递,需要在init函数中定义参数,然后必须要有self参数,self指代实例对象,字面意思就是自己本身。
5、总结
不推荐使用这种方法进行模糊匹配,最简便的方法依旧是将数据导入到sql中直接用模糊匹配like来实现。但是该案例体现了pandas在fme数据处理中的强大的一面,如果pandas用的熟练,那么只要是数据,应该都没有什么处理不了的问题了。同时这个代码冗余较多,如果匹配项目多了,还得一个一个添加字段,优势是可以实现图形数据的属性挂接。后续会持续更新fme的一些有用的模板。
fme结合python-pandas实现图形数据和表格数据的模糊匹配挂接相关推荐
- python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项
一.python库camelot安装及使用中的一些注意事项 1)camelot方法有两种解析模式:流解析(stream).格子解析(lattice),其中格子解析能够保留表格完整的样式,对于复杂表格来 ...
- [647]python库Camelot从pdf抽取表格数据
Camelot: 一个友好的PDF表格数据抽取工具 一个python命令行工具,使任何人都能很轻松的从PDF文件中抽取表格数据. 安装 Camelot 安装非常简单! 在安装相关的依赖后,可以直接使用 ...
- python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...
原标题:Python 读取各类文件格式的文本信息 | doc,excel,html,mht 众所周知,python最强大的地方在于,python社区汇总拥有丰富的第三方库,开源的特性,使得有越来越多的 ...
- python 提取pdf表格_用Python提取pdf文件中的表格数据
本文作者:杨慧琳 本文编辑:周聪聪 技术总编:张学人有问题,不要怕!访问 http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx ...
- Python实现将多个Excel表格数据一键合并到一个表格,轻松提升办公效率!
老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去. 还好我会Python,分分钟就搞定了,这要是换个不会Python的,不得加班到第二天天亮去了~ 这么好用的技能,必须分享给 ...
- kaggle比赛数据_表格数据二进制分类:来自5个Kaggle比赛的所有技巧和窍门
kaggle比赛数据 This article was originally written by Shahul ES and posted on the Neptune blog. 本文最初由 Sh ...
- python pandas excel数据处理_Python处理Excel数据-pandas篇
Python处理Excel数据-pandas篇 非常适用于大量数据的拼接.清洗.筛选及分析 在计算机编程中,pandas是Python编程语言的用于数据操纵和分析的软件库.特别是,它提供操纵数值表格和 ...
- python pandas读取csv_pandas读取csv文件数据的方法及注意点
pandas是一个高效的数据分析工具.基于其高度抽象的数据结构DataFrame(点击这里了解DataFrame数据结构),几乎可以对数据进行任何你想要的操作. 由于现实世界中数据源的格式非常多,pa ...
- python pandas爬取网页成绩表格,计算各个类别学分
一.以下是个人成绩表格 二.下面是我的程序: # -- coding: utf-8 -- import pandas as pd import csvdef credit_points_sum(df, ...
最新文章
- Java学习笔记33
- C++学习笔记(四)----关于参数传递(1)
- Tomcat7并发和线程数
- sqlite3.OperationalError: no such column: **
- 95-10-200-启动-结尾
- XCode: 如何添加自定义代码片段
- IOS多线程实现多图片下载(一)
- 安装3dmax2020版本注意事项
- Tecplot绘制流体后处理图的问题
- 基于大数据的智能交通管理管控指挥平台技术方案
- access和filemaker_四个替代微软Access的开源产品
- IP地址最后一位斜杠是什么意思?比如192.168.1.10/27?还有IP地址和子网掩码相加得到的网络地址是什么意思
- 从Uber和快的、滴滴、易到App对比看人性
- (二)硕博生常用的外文文献检索方式推荐
- 入华商用四周年,Office 365小程序在路上
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
- 小南再谈Vue(QA)
- vba 为excel排序
- android 记录血糖的折线图_画画血糖曲线图,你还可稳血糖!快试试
- 如何在PPT中实现多张图片叠加在一起,点击消失一张出来下一张的效果
热门文章
- OpenXML方式导出word
- 透过大型企业成功案例,看 IoT 物联网平台技术选型
- C++17 新特性介绍
- Android MVP框架MVPro的使用和源码分析
- 甲骨文客户端配置 ORALCE PLSQL 远程 连接
- inshot怎么转gif_inshot怎么用 教你照片视频制作技巧
- Java编程 Javase06
- 10a大电流稳压芯片_24V大电流直流稳压电源400V10A线性直流可调电源-山东航能
- 山寨版360安全卫士 腾讯电脑管家开源(.NET实现)
- BlockChain区块链+IoT物联网的技术结合