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

如何统计Data Scientist职位描述中指定技能词的出现频率?

问题

我有个从Glassdoor爬取的DataFrame df,包含Job Title和Job Description两列,数据样例如下:

Job TitleJob Description
Data Scientist职位描述内容
Data Scientist职位描述内容
Data Engineer职位描述内容
Data Scientist职位描述内容
Data Analyst职位描述内容

现在要针对Job Title为Data Scientist的记录,统计指定技能列表(Python、R、C/C++、Java、Machine Learning、Deep Learning、NLP、Power BI、Tableau、Excel、spark、aws、MS Access、LMS、SAS)在Job Description中的出现频率,输出包含skills和frequency列的DataFrame,样例如下:

skillsfrequency
python243
R109
power bi183
tableau201

我试了两种方法都存在问题:

  • 方法一:会统计描述中所有词汇的频率,并非仅指定技能词
    (df
     .loc[df['Job Title'].eq('Data Scientist'), 'Job Description']
     .str.split(',\s*')
     .explode()
     .value_counts()
    )
    
  • 方法二:可统计单个技能词的出现次数,但需逐个输入技能词,效率低下
    test = df['Job Description'].apply(lambda x: 1 if 'python' in x.lower()else 0)
    test.value_counts()
    

求高效的解决方案。

解决方案

思路

先筛选出所有Job Title为Data Scientist的职位描述,批量遍历指定技能列表,检查每个技能是否出现在描述中(不区分大小写),最后将统计结果整理成目标格式的DataFrame。

代码实现

import pandas as pd

# 定义要统计的技能列表
target_skills = ['Python', 'R', 'C/C++', 'Java', 'Machine Learning', 'Deep Learning', 
                 'NLP', 'Power BI', 'Tableau', 'Excel', 'spark', 'aws', 'MS Access', 'LMS', 'SAS']

# 筛选Data Scientist的职位描述,统一转小写避免大小写匹配误差
ds_jd = df.loc[df['Job Title'] == 'Data Scientist', 'Job Description'].str.lower()

# 批量统计每个技能的出现次数
skill_freq = []
for skill in target_skills:
    # 统计包含该技能的描述数量(True会被视为1,sum直接累加次数)
    freq = ds_jd.str.contains(skill.lower()).sum()
    skill_freq.append({'skills': skill.lower(), 'frequency': freq})

# 转为目标DataFrame,可选按频率降序排序
result_df = pd.DataFrame(skill_freq).sort_values('frequency', ascending=False).reset_index(drop=True)

print(result_df)

可选优化(精确匹配)

如果担心技能词被部分匹配(比如Python被误匹配为Pythonic),可以用正则表达式的单词边界实现精确匹配,需要先导入re模块:

import re

# 修改统计部分的代码
freq = ds_jd.str.contains(r'\b' + re.escape(skill.lower()) + r'\b').sum()

这样只会匹配完整的技能词,避免误统计情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:03:19