我还无法找到以下问题的答案:如何将字符串拆分为具有与列表中的值匹配的子字符串的行(而不是数据框的一部分)。换句话说,我需要从“系列”行中拆分/提取与动态列表中的任何值匹配的子字符串。关于如何将此类行标记为True / False或如何将其拆分为静态列表有很多答案,但是我一直试图将两个任务合并为一个。任何帮助将不胜感激。
示例: 系列-John Doe先生,Jane Smith女士,Who,No。博士,Doolittle医生,X先生,蝙蝠侠 清单1-博士,医生
输出-John Doe先生,Jane Smith女士,谁,不,Doolittle,X先生,蝙蝠侠
列表2-先生,先生
输出-John Doe,Jane Smith女士,Who,No。博士,Doolittle医生,X,蝙蝠侠
答案 0 :(得分:0)
s = pd.Series('Mr. John Doe, Ms. Jane Smith, Dr. Who, Dr. No, Doctor Doolittle, Mister X, Batman'.split(', '))
l = ['Dr. ', 'Doctor ']
list(s.str.replace('({})'.format('|'.join(l)), ''))
Out:
['Mr. John Doe',
'Ms. Jane Smith',
'Who',
'No',
'Doolittle',
'Mister X',
'Batman']
l = ['Mr. ', 'Mister ']
list(s.str.replace('({})'.format('|'.join(l)), ''))
Out:
['John Doe',
'Ms. Jane Smith',
'Dr. Who',
'Dr. No',
'Doctor Doolittle',
'X',
'Batman']