Regex pandas:返回序列中每个字符串值的所有匹配键

Regex pandas:返回序列中每个字符串值的所有匹配键,regex,pandas,series,Regex,Pandas,Series,如何将搜索列表中的所有匹配键作为逗号分隔的值返回 比如说, s = pd.Series(['cat dog','hat cat','dog','fog cat','pet']) searchfor = ['cat', 'dog'] 我想得到这个: ['cat,dog','cat','dog','cat','None'] 先把它分开,然后做str.contains 我的同事帮了我。 以下是我最终如何做到的: s = pandas.Series(['cat dog','hat cat','dog'

如何将搜索列表中的所有匹配键作为逗号分隔的值返回

比如说,

s = pd.Series(['cat dog','hat cat','dog','fog cat','pet'])
searchfor = ['cat', 'dog']
我想得到这个:

['cat,dog','cat','dog','cat','None']

先把它分开,然后做str.contains


我的同事帮了我。 以下是我最终如何做到的:

s = pandas.Series(['cat dog','hat cat','dog','fog cat','pet'])
searchfor = ['cat', 'dog']

b = ['']*len(s)
for i in numpy.arange(0,len(s)):
    for j in numpy.arange(0,len(searchfor)):
        b[i] = b[i] + ', ' + searchfor[j] if searchfor[j] in s[i] and b[i]!= '' else (searchfor[j] if searchfor[j] in s[i] else b[i])
df = DataFrame({'s': s, 'searchfor': [numpy.nan if i=='' else i for i in b]})
df


谢谢成功了@SharvariGc如果它是您需要的,您可以接受吗?我刚刚意识到它正在从字符串s中提取值以用于输出,但是,我希望从列表搜索中提取值,并在输出列中以逗号分隔的值返回。同时也给你一个明确的答案,例如,它不应该返回cat,并试图将上述评论通知你。
s = pandas.Series(['cat dog','hat cat','dog','fog cat','pet'])
searchfor = ['cat', 'dog']

b = ['']*len(s)
for i in numpy.arange(0,len(s)):
    for j in numpy.arange(0,len(searchfor)):
        b[i] = b[i] + ', ' + searchfor[j] if searchfor[j] in s[i] and b[i]!= '' else (searchfor[j] if searchfor[j] in s[i] else b[i])
df = DataFrame({'s': s, 'searchfor': [numpy.nan if i=='' else i for i in b]})
    s        searchfor
0   cat dog  cat, dog
1   hat cat  cat
2   dog      dog
3   fog cat  cat
4   pet      NaN