You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

统计df1各行业关键词与df2网站内容列表的匹配单词数量

实现方案(Python Pandas 版本)

以下代码可直接运行得到你要的输出结果:

import pandas as pd
import ast

# ---------------------- 示例数据构造 ----------------------
# 如果你是从csv/excel读取数据,可跳过这部分,直接用你自己的df1、df2
df1 = pd.DataFrame({
    'Sector': ['Education', 'Finance'],
    'Content': [['school', 'children', 'learning', 'enrichment'], ['banks', 'insurance', 'moneylender']]
})

df2 = pd.DataFrame({
    'Company Name': ['ABC', 'DEF'],
    'Website Info': [['school', 'enrichment'], ['banks', 'children', 'school']]
})
# ---------------------------------------------------------

# 如果读取数据时列表字段被识别为字符串,需要先执行以下转换代码
# df1['Content'] = df1['Content'].apply(ast.literal_eval)
# df2['Website Info'] = df2['Website Info'].apply(ast.literal_eval)

# 1. 把行业关键词转为【行业名: 关键词集合】的映射,集合查询效率远高于列表
sector_kw_map = {
    sector: set(kw_list) 
    for sector, kw_list in zip(df1['Sector'], df1['Content'])
}

# 2. 逐行业统计df2每行内容的匹配单词数
for sector, kw_set in sector_kw_map.items():
    # 按要求生成列名
    col_name = f'No. of Matched Words {sector}'
    # 取两个集合的交集长度,即为匹配单词数量
    df2[col_name] = df2['Website Info'].apply(lambda info: len(set(info) & kw_set))

# 输出结果
print(df2)

逻辑说明

  • 用集合存储关键词是为了提升查询效率,数据量级大的时候性能优势会非常明显
  • 代码支持动态适配df1的行业扩展,后续新增行业不需要修改统计逻辑,会自动生成对应匹配数字段
  • 如果需要统计非去重的匹配次数(比如某关键词在Website Info里出现2次算2次),可以把统计逻辑替换为:
    df2[col_name] = df2['Website Info'].apply(lambda info: sum(1 for word in info if word in kw_set))
    

内容的提问来源于stack exchange,提问作者fearon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:18:04