Python 官方文档:入门教程 => 点击学习
如何进行python pandas两个表格内容模糊匹配的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、方法2此方法是两个表构建某一相同字段,然后全连接,
如何进行python pandas两个表格内容模糊匹配的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
此方法是两个表构建某一相同字段,然后全连接,在做匹配结果筛选,此方法针对数据量不大的时候,逻辑比较简单,但是内存消耗较大
import pandas as pdimport numpy as npimport re
#关键词数据df_keyWord = pd.DataFrame({ "keyid" : np.arange(5), "keyword" : ["numpy", "pandas", "matplotlib", "sklearn", "Tensorflow"]})df_keyword
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
df_keyword['match'] = 1df_sentence['match'] = 1
df_merge = pd.merge(df_keyword, df_sentence)df_merge
def match_func(row): return re.search(row["keyword"], row["sentence"], re.IGNORECASE) is not Nonedf_merge[df_merge.apply(match_func, axis = 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}
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)
df_merge
df_result = pd.merge(left = df_merge.explode("keyids"),right = df_keyword,left_on = "keyids",right_on = "keyid")df_result
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网Python频道,感谢您对编程网的支持。
--结束END--
本文标题: 如何进行Python pandas两个表格内容模糊匹配的实现
本文链接: https://www.lsjlt.com/news/305416.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0