以基于字典的其他列值为条件创建pandas列

时间:2018-01-30 08:31:47

标签: python-3.x pandas dictionary dataframe conditional

Goodday,

我目前正尝试使用python 3.x和pandas基于作业标题标记大量作业广告。由于每家公司都为自己的工作使用不同的术语,我希望以合理的方式对它们进行聚类。

目前,我有一个包含40.000多个招聘广告的数据框,并使用以下代码标记新pandas列中的作业:

dictionary = {
    'c.*dev': 'c developer',
    'web.*des': 'web designer',
    'onl.*mark': 'online marketer',
...
}
for key in dictionary:
    df.loc[(df['Job'].str.contains(key) == True), ['Clustered Jobs']] = dictionary[key]

随着字典和数据库的不断增长。我想问一下,是否有一种更优雅,更有效的方式来做到这一点。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你的解决方案应该有点简化:

for key in dictionary:
    df.loc[df['Job'].str.contains(key), 'Clustered Jobs'] = dictionary[key]

或者:

for k, v in dictionary.items():
    df.loc[df['Job'].str.contains(k), 'Clustered Jobs'] = v