我在kaggle上找到了这个数据集,我想在上面做EDA。
https://www.kaggle.com/datasets/andrewmvd/data-scientist-jobs/data
快速概述:数据集是从glassdoor数据科学招聘广告中抓取的。其中一列是职位名称,有些职位有“高级”或与高级相关的词。例如“数据科学总监”或“高级数据分析师”。
我想写的代码,返回1,如果关键字,如高级,高级,主任,铅等.在职称。
以下是我迄今为止对代码的尝试
def seniority_level_(text):
seniority_list = ["sr","senior","lead","director", "sr.","vp"]
for i in seniority_list:
if i in text.lower():
return 1
else:
return 0
df_data["Senior level"] = df_data["Job Title"].apply(seniority_level_)
字符串
现在,我在pandas中使用.apply在Job title列上创建一个新列,该列的值为1或0,如果为1,则职位名称中为Senior,如果为0,则不是高级职位。
这样做的问题是,它似乎只适用于职务名称中有Sr的Job Title列的第一个条目,但似乎不适用于该列中的任何其他条目。
我哪里做错了?
2条答案
按热度按时间pjngdqdw1#
代码中的问题是由于在循环中使用了
return
语句。当Python执行return
语句时,它会立即退出seniority_level_
函数,只返回基于seniority_list
中第一项的值。因此,您的函数只检查第一个关键字(“sr”),忽略其余部分。字符串
ukdjmx9f2#
使用正则表达式:
字符串