熊猫在列表中的匹配子字符串上拆分字符串

时间:2019-03-05 22:07:38

标签: pandas list split

我还无法找到以下问题的答案:如何将字符串拆分为具有与列表中的值匹配的子字符串的行(而不是数据框的一部分)。换句话说,我需要从“系列”行中拆分/提取与动态列表中的任何值匹配的子字符串。关于如何将此类行标记为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,蝙蝠侠

1 个答案:

答案 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']