如何向字符串系列添加新的字符串元素

How to add a new string element to the Series of strings

我有一个 pandas 系列字符串(职位名称)。我还有一个带有“目标”职位的字符串。

我的任务是遍历系列并检查系列元素中是否存在“目标”。必须完全匹配(包括空格)。

如果存在,则系列的元素必须替换为“目标”。如果没有匹配项,则原始元素将保持不变。 我必须 return 和调整后的系列。

这是我的代码和错误。

def nn(s, target)

      sn = pd.Series()

      for w in s:  
          if target in w:
              sn.append(pd.Series(target))
        
          else:
              sn.append(pd.Series(w))
return sn

输入数据:

import pandas as pd
import copy

s = pandas.Series(['DATA ANALYTIC SCIENTIST',
                   'BEST DATA SCIENTIST',
                   'DATA SCIENTIST',
                   'DATA SCIENTIST - SPACE OPTIMIZATION',
                   'SCIENTIST DATA'])

target = 'DATA SCIENTIST'

nn(s, target)

错误(空系列)

Series([], dtype: float64)

谢谢!!

你想要 str.containsmask:

s.mask(s.str.contains(target), target)

extract然后fillna:

s.str.extract(f'({target})', expand=False).fillna(s)

输出:

0    DATA ANALYTIC SCIENTIST
1             DATA SCIENTIST
2             DATA SCIENTIST
3             DATA SCIENTIST
4             SCIENTIST DATA
dtype: object