使用Pandas按职位标题分组,将资格拼接为分隔列表
使用Pandas实现按职位标题分组汇总资格要求
没问题,这事儿用Pandas的分组+自定义聚合就能轻松搞定,我会结合你给的数据集场景(包括多资格职位和无资格职位)一步步演示:
1. 先准备示例数据
我补全了你截断的数据集,还加了一个无资格要求的职位案例,方便你测试:
import pandas as pd data = { "JobID": [34455226, 34455226, 34466933, 34466111, 34477888], "Job Title": [".Net Developer", ".Net Developer", ".Net Developer", ".Net Developer", "Data Analyst"], "Qualification ID": ["ICT50715", "ICT40515", "ICT50715", None, None], "Qualification Name": [ "Diploma of Software Development", "Certificate IV in Programming", "Diploma of Software Development", None, None ] } df = pd.DataFrame(data)
2. 核心分组汇总代码
关键是用groupby按职位标题分组,再用自定义聚合函数把资格名称拼接成分隔符分隔的列表,同时处理空值场景:
# 按Job Title分组,将Qualification Name汇总为逗号分隔的列表 result = df.groupby("Job Title")["Qualification Name"].agg( lambda x: ", ".join(x.dropna().astype(str)) if not x.dropna().empty else "无资格要求" ).reset_index() # 查看结果 print(result)
3. 代码逻辑说明
groupby("Job Title"):把数据按职位标题划分成独立的分组- 自定义聚合函数:
- 先用
x.dropna()过滤掉组内的空值资格记录 - 如果组内存在有效资格,用
", ".join()把它们拼接成字符串;如果没有有效资格,就返回"无资格要求"
- 先用
reset_index():把分组后的索引转为普通列,让结果格式更规整易读
4. 最终输出结果
运行代码后会得到如下结果:
Job Title Qualification Name 0 .Net Developer Diploma of Software Development, Certificate IV in Programming 1 Data Analyst 无资格要求
如果需要更换分隔符(比如分号、换行符),只需要把代码中的", ".join改成你需要的分隔符拼接即可~
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

