Eks6666 发表于 2024-7-29 09:58

利用python对excel进行模糊匹配,彻底告别Vlookup函数


import pandas as pd
# from jieba import posseg# 用于中文分词


def chinese_char_count(some_string):
    return len()


def match_by_similarity(df, full_col, kw_col, len_threshold=3):
    result_list = []
    for index, row in df.iterrows():
      keywords = row
      print(keywords)
      keyword_words =
      # print(keyword_words)
      for index1, row1 in df.iterrows():
            full_name = row1
            # print(full_name)
            # 对中文进行分词
            full_name_words =

            # 计算相同字数
            common_words = set(full_name_words) & set(keyword_words)
            # print(common_words)
            if chinese_char_count(''.join(common_words)) >= len_threshold:
                print(common_words)
                df.at = full_name
                break
            else:
                df.at = "没有匹配到"

    return df


# 读取Excel文件
df = pd.read_excel('test3.xlsx')
# 执行模糊匹配
data = match_by_similarity(df, "详细地址", "市")
print(data)

gison 发表于 2024-7-30 10:46

本帖最后由 gison 于 2024-7-30 10:49 编辑

这个在Excel自带的power Query里也能轻松实现

第一步: 将表格导入Power Query [ 数据-来自表格]

第二步: 合并查询为新查询

apples1949 发表于 2024-7-29 10:49

本帖最后由 apples1949 于 2024-7-29 10:50 编辑

https://www.52pojie.cn/thread-1697081-1-1.html
https://www.52pojie.cn/thread-1742531-1-1.html

fs2moro 发表于 2024-7-29 10:19

认真学习

jiahaobai 发表于 2024-7-29 10:23

?这是匹配什么?

wjbg2022 发表于 2024-7-29 10:37

你这算是重复造车吗?

liuhaigang12 发表于 2024-7-29 10:38

没看懂你用merge不就行了

xgzhsd 发表于 2024-7-29 10:45

这个对使用的xlsx的样例也放一个吧

ainihd 发表于 2024-7-29 11:21

能否发个成品

wangziqiu1122 发表于 2024-7-29 11:49


认真学习

chewenbin1234 发表于 2024-7-29 12:45

围观学习,谢谢发布{:1_892:}
页: [1] 2
查看完整版本: 利用python对excel进行模糊匹配,彻底告别Vlookup函数