基于Pandas的数据分析:识别个人求职的行业组合偏好
分析求职申请数据集中个人倾向的行业组合
嘿,我来帮你搞定这个问题!从你给出的数据集结构来看,我们的目标是找出求职者群体中最常出现的行业申请组合——也就是大家扎堆申请的行业搭配。下面是一步步的解决方案:
核心思路
我们需要先按每个求职者的id分组,把他们申请的所有行业整理成一个固定顺序的组合(避免因申请顺序不同导致同一种组合被重复统计),然后统计每种组合的出现频率,频率最高的就是我们要找的“倾向组合”。
代码实现(Python Pandas)
假设你的数据集已经加载到df中,用以下代码就能快速得到结果:
import pandas as pd # 1. 按id分组,收集每个用户的申请行业,排序后转为元组(确保组合顺序统一) user_combinations = df.groupby('id')['area_job_application'].agg( lambda x: tuple(sorted(x)) ).reset_index(name='industry_combination') # 2. 统计每种行业组合的出现次数 combination_counts = user_combinations['industry_combination'].value_counts().reset_index( name='applicant_count' ) # 3. 输出结果:查看最常见的组合 top_combination = combination_counts.iloc[0] print(f"最受求职者青睐的行业组合是:{top_combination['industry_combination']},共有{top_combination['applicant_count']}位求职者申请了这个组合") # 如果想查看前N个热门组合,可以用: print("\nTop 3热门行业组合:") print(combination_counts.head(3))
结果解读
- 为什么要排序后转元组?比如用户2和用户3都申请了
Finance和Sales,只是记录顺序不同,排序后都会变成('Finance', 'Sales'),这样就能被归为同一种组合统计。 - 从你提供的示例数据来看,
('Finance', 'Sales')这个组合出现了2次(用户2和3),是目前样本里最频繁的组合。
额外拓展
如果还想结合education字段分析不同学历人群的倾向组合,可以在分组时加上education:
edu_combinations = df.groupby(['id', 'education'])['area_job_application'].agg( lambda x: tuple(sorted(x)) ).reset_index(name='industry_combination') edu_combination_counts = edu_combinations.groupby(['education', 'industry_combination']).size().reset_index(name='count') print(edu_combination_counts.sort_values('count', ascending=False))
内容的提问来源于stack exchange,提问作者Lucas Dresl
相关产品推荐
相关产品推荐

