Python Pandas两个表格内容模糊匹配的实现

 更新时间:2021年11月11日 17:16:56   作者:迪迦瓦特曼  
模糊查询大家应该都不会陌生,下面这篇文章主要给大家介绍了关于Python Pandas两个表格内容模糊匹配的实现方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

一、方法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

总结

到此这篇关于Python Pandas两个表格内容模糊匹配搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python的Django框架中的Cookie相关处理

    详解Python的Django框架中的Cookie相关处理

    这篇文章主要介绍了详解Python的Django框架中的Cookie相关处理,Cookie存储是每个开发框架都会着重注意的重要功能,需要的朋友可以参考下
    2015-07-07
  • np.ones的使用小结

    np.ones的使用小结

    本文主要介绍了np.ones的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python线程之同步机制实际应用场景举例说明

    Python线程之同步机制实际应用场景举例说明

    这篇文章主要给大家分享的是Python线程之同步机制实际应用场景举例说明,银行转账小栗子供大家参考学习,希望对你有一定的帮助
    2022-02-02
  • Python中合并列表的5种方法代码示例

    Python中合并列表的5种方法代码示例

    在python列表操作中除了排序、删除、添加、去重外,合并也是经常需求的操作,下面这篇文章主要给大家介绍了关于Python中合并列表的5种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 用 python 进行微信好友信息分析

    用 python 进行微信好友信息分析

    这篇文章主要介绍了用 python 进行微信好友信息分析的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • Python爬虫获取基金变动信息

    Python爬虫获取基金变动信息

    这篇文章主要介绍了Python爬虫获取基金变动信息,问基于上一篇文章得内容介绍围绕python的相关资料展开全文,需要的小伙伴可以参考一下
    2022-05-05
  • vscode配置anaconda3的方法步骤

    vscode配置anaconda3的方法步骤

    这篇文章主要介绍了vscode配置anaconda3的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • python如何给内存和cpu使用量设置限制

    python如何给内存和cpu使用量设置限制

    这篇文章主要介绍了python如何给内存和cpu使用量设置限制,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Tensorflow 实现分批量读取数据

    Tensorflow 实现分批量读取数据

    今天小编就为大家分享一篇Tensorflow 实现分批量读取数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 使用Python制作一个极简四则运算解释器

    使用Python制作一个极简四则运算解释器

    这篇文章主要介绍了使用Python制作一个极简四则运算解释器,在使用工具之前,至少也要了解工具的作用,需要的朋友可以参考下
    2023-04-04

最新评论