首页 > 解决方案 > 数数 从一个数据框列表到另一个数据框列表的匹配词

问题描述

我有 2 个数据框,我想在其中计算编号。从 df1 到 df 2 的匹配词

df1 是属于每个部门的关键字列表,例如教育、金融、交通等

df1

部门 内容
教育 ['学校','孩子','学习','充实']
金融 ['银行','保险','放债人']

df 2 是从网站上抓取的数据。单词已被拆分和清理,并以列表形式。

df2

公司名称 网站信息
美国广播公司 ['学校','充实']
国防军 ['银行','儿童','学校']

我想找出没有。df1 中每个扇区匹配的单词。
预期结果:

公司名称 网站信息 匹配词教育数量 匹配词数 财务
美国广播公司 ['学校','充实'] 2 0
国防军 ['银行','儿童','学校'] 2 1

标签: pythonlistdataframe

解决方案


有两种解决方案:

  1. 遍历时间复杂度为 O(n^2) 的列表

    
    education= ['school', 'children', 'learning', 'enrichment' ]
    abc = ['school', 'enrichment']
    count = 0
    for element in abc:
        if element in education:
            count+=1
    
  2. 使用时间复杂度为 O(n) 的 collections.Counter()

    
    counters = collections.Counter(education+abc)
    count = len([x for x in list(dict(counters).values()) if x >1])
    

显然第二种解决方案更好


推荐阅读