您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python Pandas两个表格内容模糊匹配的实现

51自学网 2022-02-21 10:48:46
  python
这篇教程Python Pandas两个表格内容模糊匹配的实现写得很实用,希望能帮到您。

一、方法2

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

1. 导入库

import pandas as pdimport numpy as npimport 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'] = 1df_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 Nonedf_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 rowdf_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两个表格内容模糊匹配搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python人工智能深度学习CNN
Python Flask入门之模板
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。