根据列表中的匹配项创建列
Creating a column based on matches from a list
我有一个数据框,每行的同一字符串中有一列职位和公司名称,我还有一个所有可能的公司名称的列表。
如何搜索我的数据框的列以查看它是否包含我列表中的公司之一,然后在某些行中有匹配项时创建一个仅包含公司名称的新列?附上两张照片。
我尝试了几种解决方案,但找不到有效的解决方案。
我遵循的原始逻辑是;
df['Company'] = df['Title'].str.contains(工作列表中的 x 为 x)
但显然这会引发错误。
感谢任何帮助,谢谢。
将 Series.str.contains
与 |
的连接值用于正则表达式 or
用于测试值:
df['test'] = df['Title'].str.contains('|'.join(joblist))
如果想按列表提取值,请使用 Series.str.extract
:
df['Company'] = df['Title'].str.extract(f'({"|".join(joblist)})', expand=False)
您需要访问包含公司的列表中的所有项目,并将它们与列 "Title" 的每个值进行比较。
您可以使用运算符 in
.
检查一个字符串是否包含另一个字符串
all_titles = df['Title']
for x in all_titles:
for y in df:
if (y in x ):
//your code here
我有一个数据框,每行的同一字符串中有一列职位和公司名称,我还有一个所有可能的公司名称的列表。
如何搜索我的数据框的列以查看它是否包含我列表中的公司之一,然后在某些行中有匹配项时创建一个仅包含公司名称的新列?附上两张照片。
我尝试了几种解决方案,但找不到有效的解决方案。
我遵循的原始逻辑是; df['Company'] = df['Title'].str.contains(工作列表中的 x 为 x) 但显然这会引发错误。
感谢任何帮助,谢谢。
将 Series.str.contains
与 |
的连接值用于正则表达式 or
用于测试值:
df['test'] = df['Title'].str.contains('|'.join(joblist))
如果想按列表提取值,请使用 Series.str.extract
:
df['Company'] = df['Title'].str.extract(f'({"|".join(joblist)})', expand=False)
您需要访问包含公司的列表中的所有项目,并将它们与列 "Title" 的每个值进行比较。
您可以使用运算符 in
.
all_titles = df['Title']
for x in all_titles:
for y in df:
if (y in x ):
//your code here