目录

一、方法2

1. 导入库

2. 构建关键词

3. 构建句子

4. 建立统一索引

5. 表连接

6. 关键词匹配

二、方法2

1. 构建字典

2. 关键词匹配

3. 结果展示

4. 匹配结果展开


一、方法2

此方法是两个表构建某一相同字段,然后全连接,在做匹配结果筛选,此方法针对数据量不大的时候,逻辑比较简单,但是内存消耗较大

1. 导入库

import pandas as pd
import numpy as np
import re

2. 构建关键词

#关键词数据
df_keyword = pd.DataFrame({"keyid" : np.arange(5),"keyword" : ["numpy", "pandas", "matplotlib", "sklearn", "tensorflow"]
})
df_keyword

3. 构建句子

df_sentence = pd.DataFrame({"senid" : np.arange(10,17),"sentence" : ["怎样用pandas实现merge?","Python之Numpy详细教程","怎么使用Pandas批量拆分与合并Excel文件?","怎样使用pandas的map和apply函数?","深度学习之tensorflow简介","tensorflow和numpy的关系","基于sklearn的一些机器学习的代码"]
})
df_sentence

4. 建立统一索引

df_keyword['match'] = 1
df_sentence['match'] = 1

5. 表连接

df_merge = pd.merge(df_keyword, df_sentence)
df_merge

6. 关键词匹配

def match_func(row):return re.search(row["keyword"], row["sentence"], re.IGNORECASE) is not None
df_merge[df_merge.apply(match_func, axis = 1)]

匹配结果如下

二、方法2

此方法对编程能力有要求,在大数据集上计算量较方法一小很多

1. 构建字典

key_word_dict = {row.keyword : row.keyidfor row in df_keyword.itertuples()
}
key_word_dict
{'numpy': 0, 'pandas': 1, 'matplotlib': 2, 'sklearn': 3, 'tensorflow': 4}

2. 关键词匹配

def merge_func(row):#新增一列,表示可以匹配的keyidrow["keyids"] = [keyidfor key_word, keyid in key_word_dict.items()if re.search(key_word, row["sentence"], re.IGNORECASE)]return row
df_merge = df_sentence.apply(merge_func, axis = 1)

3. 结果展示

df_merge

4. 匹配结果展开

df_result = pd.merge(
left = df_merge.explode("keyids"),
right = df_keyword,
left_on = "keyids",
right_on = "keyid")
df_result

Pandas实现两个表格内容模糊匹配相关推荐

  1. excel两个表格内容合并怎么做?

    今天跟大家分享一下excel两个表格内容合并怎么做? 1.要求将这两个工作簿合并为一个 2.首先打开这两个工作簿 3.然后点击下图选项 4.选择[汇总拆分]-[合并多簿] 5.然后点击[确定] 6.完 ...

  2. pandas求两个表格不相交的集合

    Hi,好久不见,我还是那颗翻滚的老鼠屎.处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这里介绍老鼠屎技己使用的方法,希望对读者会有帮助. 阴影部分为 ...

  3. xpath爬取airbnb民宿价格信息,为啥用属性定位不到元素,但是用文本内容模糊匹配却可以

    超级小白,刚刚接触python.今天想要试着爬一下爱彼迎上的民宿信息,包括房屋情况.位置.价格三个信息: 我一开始的代码是这样的: 前两个信息都可以用find_elements_by_xpath很容易 ...

  4. excel两列数据如何模糊匹配

    在Excel中模糊匹配两列数据,可以使用函数进行解决.具体来说,您可以使用 VLOOKUP 函数,它可以在第一列中查找指定的值,并返回与其相关的值. 例如,如果您有第一列包含公司名称,第二列包含城市名 ...

  5. python数据模糊匹配,使用python中两个数据集的模糊匹配创建标志

    我尝试了两个df的模糊比较,就我的研究而言,没有快速的方法来做.使用4fuzz方法也会降低脚本的速度.一种方法是使用'工艺提取酮()`并创建一个函数:from fuzzywuzzy import pr ...

  6. python基于pandas使两个表格之间匹配某一属性

    import pandas as pd import numpy as np #编码距离,用于匹配最相近的中文字符串 def edit_distance(word1, word2):len1 = le ...

  7. python两个excel字段模糊匹配_Python对两个Excel操作

    简介 现在有个需求,我们根据需要 data.xlsx 中某些单元格的内容来查找 find.xlsx 中的某些內容. 数据内容(为了数据安全,所有数据均已模糊处理) data.xlsx内容: find. ...

  8. python两个excel字段模糊匹配_Excel模糊查找中使用的算法 - python

    我正在匹配两个公司的公司名称.我试图用Levenstien的距离在Python中进行编码.我遇到公司简称以及诸如Pvt,Ltd之类的尾随问题.我已经使用Excel Fuzzy查找运行了相同的集合,并获 ...

  9. excel两个表格内容合并

    ​ 1.在工作中可能会遇到要将两个工作表合并到一个工作表的情况,下面我们就以下图为例跟大家演示一下Excel如何快速合并多工作表. ​ 2.点击下图选项(Excel工具箱,百度即可了解详细的下载安装信 ...

最新文章

  1. mybatis plus 导出sql_springBoot+mybatisPlus+hutool 实现输入sql导出 excel表格
  2. PortICASetDefaults.exe /o命令返回为空
  3. java中gso是什么意思_Java中用Gson解析json字符串
  4. php怎样输出多个空格,【整理】解决php输出时出现多余的空格或者换行
  5. sql嵌套查询返回多个字段_list4 SQL复杂查询
  6. [XSY] 宝藏(LCS,DP)
  7. 计算机房英语单词,主机房是什么意思
  8. 数据结构 - 栈(数组模拟栈操作)
  9. RFC 8998: ShangMi (SM) Cipher Suites for TLS 1.3
  10. Firefox关闭最后一个标签页时不关闭Firefox的设置
  11. 机器学习的实现(语言及库的选择)
  12. 如何在 Linux 中复制文件到多个目录中
  13. 我看Asp.Net控件(三)
  14. Visual Studio 2013 + Intel(R) Visual Fortran 安装教程
  15. 一张表实现固定表头和锁定列
  16. 共享图书横空出世一本书看十天只需一块钱
  17. 触动精灵贝塞尔曲线Bezier Curve
  18. Java程序员面试笔试宝典-数据库原理(三)
  19. 基于IFB对网络入口流量设置Qos策略
  20. 会员管理系统(一)--页面登陆与注册

热门文章

  1. Win11更改磁盘驱动器号的方法
  2. 清华大学2020计算机考研分数线,清华大学2020年硕士研究生招生复试基本分数线...
  3. 福昕PDF阅读器无法修改、注释文档,解决办法!
  4. error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead.
  5. 存货账龄分析报表(上)
  6. 一些常用办公开发工具及网站推荐
  7. 面向非圆曲线的数控代码生成器
  8. 在一些测试的时候,我总是被考“思维定势”的题目给难住
  9. [bzoj4919] 大根堆
  10. jar包升级,升级springboot默认mysql-connet-java版本