Python Pandas两个表格内容模糊匹配的实现
作者:迪迦瓦特曼 时间:2021-09-06 01:56:23
一、方法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.keyid
for row in df_keyword.itertuples()
}
key_word_dict
{'numpy': 0, 'pandas': 1, 'matplotlib': 2, 'sklearn': 3, 'tensorflow': 4}
2. 关键词匹配
def merge_func(row):
#新增一列,表示可以匹配的keyid
row["keyids"] = [
keyid
for 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
来源:https://blog.csdn.net/weixin_43734080/article/details/121228769
标签:pandas,模糊匹配,表格
0
投稿
猜你喜欢
Django处理多用户类型的方法介绍
2022-11-30 10:16:54
详解Go语言strconv与其他基本数据类型转换函数的使用
2024-04-23 09:42:17
Mysql给普通分页查询结果加序号实操
2024-01-16 21:06:07
纯Javascript实现Windows 8 Metro风格实现
2024-04-19 10:41:31
Python @property使用方法解析
2021-10-27 05:42:46
Laravel+Layer实现图片上传功能(整理篇)
2024-05-03 15:28:59
JetBrains 学生认证教程(Pycharm,IDEA… 等学生认证教程)
2022-06-16 08:20:04
Selenium 安装和简单使用的实现
2023-12-01 07:22:55
Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]
2024-01-28 11:22:59
Python运行不显示DOS窗口的解决方法
2021-01-18 08:06:16
网页设计布局原则
2010-04-20 17:18:00
你们要的Python绘画3D太阳系详细代码
2021-05-12 09:32:48
正则表达式30分钟入门教程
2007-08-27 10:38:00
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
2024-01-18 04:28:24
QQ连连看 for iPhone 设计实录分享
2010-09-25 12:54:00
Spring数据库事务的实现机制讲解
2024-01-19 11:32:10
python中字符串的常见操作总结(二)
2023-04-08 17:17:35
python中下标和切片的使用方法解析
2022-10-26 07:14:52
Python多个MP4合成视频的实现方法
2021-02-21 13:50:44
Python中enumerate函数代码解析
2023-05-01 09:13:52