【发布时间】:2015-01-28 17:19:21
【问题描述】:
这是来自this topic 的扩展问题。我想在字符串中搜索全部和部分字符串,例如以下关键字系列“w”:
rigour*
*demeanour*
centre*
*arbour
fulfil
这显然意味着我想搜索严格和严谨s、en风度和风度s、中心和中心s,h乔木和乔木,完成。因此,我拥有的关键字列表是要查找的完整字符串和部分字符串的组合。我想在这个 DataFrame "df" 上应用搜索:
ID;name
01;rigour
02;rigours
03;endemeanour
04;endemeanours
05;centre
06;centres
07;encentre
08;fulfil
09;fulfill
10;harbour
11;arbour
12;harbours
到目前为止,我尝试了以下内容:
r = re.compile(r'.*({}).*'.format('|'.join(w.values)), re.IGNORECASE)
然后我构建了一个掩码来过滤 DataFrame:
mask = [m.group(1) if m else None for m in map(r.search, df['Tweet'])]
为了使用找到的关键字获得一个新列:
df['keyword'] = mask
我期待的是以下结果 DataFrame:
ID;name;keyword
01;rigour;rigour
02;rigours;rigour
03;endemeanour;demeanour
04;endemeanours;demeanour
05;centre;centre
06;centres;centre
07;encentre;None
08;fulfil;fulfil
09;fulfill;None
10;harbour;arbour
11;arbour;arbour
12;harbours;None
这适用于不带 * 的 w 列表。现在我在格式化关键字 w 带有 * 条件的单词列表时遇到了几个问题,以便正确运行 re.compile 函数。
任何帮助将不胜感激。
【问题讨论】:
标签: python regex string pandas