如何向字符串系列添加新的字符串元素
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.contains
和 mask
:
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
我有一个 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.contains
和 mask
:
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