首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串变量的多个条件

字符串变量的多个条件
EN

Stack Overflow用户
提问于 2022-11-25 09:31:36
回答 3查看 44关注 0票数 -1

我试图在一个包含字符串profile_type的“”决策者“”中添加一个新列“”,如果"job_title“有以下任何一个词:(主管或副总裁或首席运营官或首席执行官或首席营销官或首席运营官或首席执行官或合伙人或创始人或所有者或首席信息官或首席技术官或总裁或领导人),

“关键影响者”如果"job_title“有以下任何一个词:(高级或顾问或经理或学习或培训或人才或人力资源或顾问或L&D或领导)

"Influencer"用于"job_title“中的所有其他字段。

例如,如果'job_title‘包括一行“学习和发展专家”,代码必须只提取单词'Learning’,并将其作为'Key‘分隔到'profile_type’之下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-28 08:09:55

下面的代码适用于我。

代码语言:javascript
复制
import re
s1 = pd.Series(df['job_title'])

condition1 = s1.str.contains('Director|Head|VP|COO|CEO...', flags=re.IGNORECASE, regex=True)

condition2 = s1.str.contains('Senior|Consultant|Manager|Learning...', flags=re.IGNORECASE, regex=True)

df_new['profile_type'] = np.where(condition1 == True, 'Decision Maker', 
         (np.where(condition2 == True, 'Key Influencer', 'Influencer')))
票数 0
EN

Stack Overflow用户

发布于 2022-11-25 09:47:56

我会尝试这样的方法:

代码语言:javascript
复制
import numpy as np

dm_titles = ['Head', 'VP', 'COO', ...]
ki_titles = ['Senior ', 'Consultant', 'Manager', ...]


conditions = [
(any([word in  new_df['job_title'] for word in dm_titles])),
(any([word in  new_df['job_title'] for word in ki_titles])),
(all([word not in  new_df['job_title'] for word in dm_titles] + [word not in  new_df['job_title'] for word in ki_titles]))
]

values = ["Decision Maker", "Key Influencer", "Influencer"]

df_new['profile_type'] = np.select(conditions, values)

如果你需要澄清,请告诉我!

票数 0
EN

Stack Overflow用户

发布于 2022-11-25 09:42:30

首先,定义一个作用于dataframe行的函数,并返回所需的内容:在您的示例中,如果'Decision Maker'包含列表中的任何单词,则为job_title

代码语言:javascript
复制
def is_key_worker(row):
    if (row["job_title"] == "CTO" or row["job_title"]=="Founder") # add more here.

接下来,沿着1轴将该函数应用于您的dataframe。

代码语言:javascript
复制
df_new["Key influencer"] = df_new.apply(is_key_worker, axis=1)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74570681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档