Python Pandas兩個(gè)表格內(nèi)容模糊匹配的實(shí)現(xiàn)
發(fā)布日期:2021-12-12 00:12 | 文章來源:CSDN
一、方法2
此方法是兩個(gè)表構(gòu)建某一相同字段,然后全連接,在做匹配結(jié)果篩選,此方法針對數(shù)據(jù)量不大的時(shí)候,邏輯比較簡單,但是內(nèi)存消耗較大
1. 導(dǎo)入庫
import pandas as pd import numpy as np import re
2. 構(gòu)建關(guān)鍵詞
#關(guān)鍵詞數(shù)據(jù)
df_keyword = pd.DataFrame({
"keyid" : np.arange(5),
"keyword" : ["numpy", "pandas", "matplotlib", "sklearn", "tensorflow"]
})
df_keyword

3. 構(gòu)建句子
df_sentence = pd.DataFrame({
"senid" : np.arange(10,17),
"sentence" : [
"怎樣用pandas實(shí)現(xiàn)merge?",
"Python之Numpy詳細(xì)教程",
"怎么使用Pandas批量拆分與合并Excel文件?",
"怎樣使用pandas的map和apply函數(shù)?",
"深度學(xué)習(xí)之tensorflow簡介",
"tensorflow和numpy的關(guān)系",
"基于sklearn的一些機(jī)器學(xué)習(xí)的代碼"
]
})
df_sentence

4. 建立統(tǒng)一索引
df_keyword['match'] = 1 df_sentence['match'] = 1
5. 表連接
df_merge = pd.merge(df_keyword, df_sentence) df_merge

6. 關(guān)鍵詞匹配
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)]
匹配結(jié)果如下

二、方法2
此方法對編程能力有要求,在大數(shù)據(jù)集上計(jì)算量較方法一小很多
1. 構(gòu)建字典
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. 關(guān)鍵詞匹配
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. 結(jié)果展示
df_merge

4. 匹配結(jié)果展開
df_result = pd.merge(
left = df_merge.explode("keyids"),
right = df_keyword,
left_on = "keyids",
right_on = "keyid")
df_result

總結(jié)
到此這篇關(guān)于Python Pandas兩個(gè)表格內(nèi)容模糊匹配搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信