【发布时间】:2022-08-13 22:36:04
【问题描述】:
我有一个数据框df这是来自 glassdoor 的工作和工作描述的网络报废数据,它看起来像这样 -
| Job Title | Job Description |
|---|---|
| Data Scientist | Descripton |
| Data Scientist | Descripton |
| Data Engineer | Descripton |
| Data Scientist | Descripton |
| Data Analyst | Descripton |
它有列职称和职位描述.职位描述非常庞大,包含特定职位的所有描述,包括职位描述中间某处所需的技能。
以下是其中一项职位描述的屏幕截图 -
我正在尝试获取包含两列的数据框,技能和频率为了职称数据科学家.
技能应该是(列表):Python、R、C/C++、Java、机器学习、深度学习、NLP、Power BI、Tableau、Excel、spark、aws、MS Access、LMS、SAS。
频率:在数据科学家职位的所有职位描述中找到一项技能的次数
输出应该是一个看起来像这样的数据框 -
|技能 |频率 | |-------------|----------| |蟒蛇 |243 | |R |109 | |动力双 |183 | |画面 |201 | 等等。
我对此的看法是:
(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()
这给出了技能的计数,但这种方法的问题是需要一项一项地提供技能。
-
请直接在问题中提供最小可重复输入和匹配的预期输出。
-
还有,这是任务吗?我们今天也有类似的问题...实际上您的代码是my answer here
-
亲爱的 mozway,我是来自不同帐户的同一个人。这不是一个任务。我只是想学习一些网上没有的东西。我是生物学领域的工作专业人士,并且是 python 新手。我正在自学。我想要做的是,我想根据提供的数据框制作一个表格,该表格将显示给定技能对工作的重要性。一项技能在职位描述中出现的次数越多,它就越重要。我需要一个包含技能及其在不同职位描述中的频率的两列表。能否请你帮忙?
-
我来自另一个问题的代码对于提供的示例运行良好。看起来你在这里有一个完全不同的格式(不仅仅是逗号分隔的关键字)。关键是您需要能够提取关键字。这是真正的问题。解决这个问题,我之前的答案应该可以正常工作。
-
如果是 SQL,我会使用 \'Like\' 函数从数据框中提取关键字及其频率,但在 python 中我不知道。