熊猫正则表达式提取两个不同符号前后的所有内容

最棒的

我有一个如下所示的数据框

df = pd.DataFrame({'person_id': [11,11,11],'text':['DOSE: 667 mg - TDS with food - Inject  hypo > 4 test value here','DOSE: 667 mg - TDS with food - Tube','DOSE: 667 mg - TDS with food - PO'],'Summary':['Test','Test1','Test2']})

从以上数据框中,我想提取所有

a)DOSE:在第一个连字符之后和之前-

b)再次提取第二连字符之后的所有内容-

我正在尝试如下

df['text'].str.extract('(\d+[A-Za-ZS]*(\-))',expand=True)  # doesn't work 
s1 = df['text'].str.split() # I tried using `str.split`
s1[0][1]  # it goes on like for loop which is not elegant.

以上可以帮我吗?

我希望我的输出如下所示

在此处输入图片说明

维克多·史翠比维

您可以使用

import pandas as pd
df = pd.DataFrame({'person_id': [11,11,11],'text':['DOSE: 667 mg - TDS with food - Inject','DOSE: 667 mg - TDS with food - Tube','DOSE: 667 mg - TDS with food - PO'],'Summary':['Test','Test1','Test2']})
df['text'].str.replace(r'^DOSE:\s*([^-]*)-[^-]*-\s*(.*)', r'\1\2')
# 0    667 mg Inject
# 1      667 mg Tube
# 2        667 mg PO
# Name: text, dtype: object

正则表达式是

^DOSE:\s*([^-]*)-[^-]*-\s*(.*)

请参阅regex演示详细资料

  • ^DOSE:-DOSE:在字符串开头
  • \s* -0+空格
  • ([^-]*)-第1组(\1指替换模式中的该组值):除a以外的任何0个或多个字符-
  • - -连字符
  • [^-]* -除0以外的其他字符 -
  • - - 一种 -
  • \s* -0+空格
  • (.*)-捕获组2(\2从替换模式中引用此组值):尽可能多的除换行符以外的零个或多个字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式提取主题标签具有两个点分隔部件

Java字符串-是否获取(但不包括)两个正则表达式之间的所有内容?

具有两个或多个符号的Java正则表达式问题

正则表达式匹配两个{}之间的所有内容

使用jsoup从两个标签之间提取未识别的html内容?正则表达式?

正则表达式匹配两个不同字符之间的所有内容

正则表达式:如何在两个标题之间选择所有内容?

正则表达式:匹配所有字符串,但捕获两个符号之间的组

正则表达式使用python(或nltk)提取两个特定单词之间的内容

正则表达式:捕获中间没有特定字符串的两个单词之间的所有内容

正则表达式可以匹配除两个字符串以外的所有内容?

Javascript中两个不同字符串正则表达式之间的所有文本

正则表达式,找到最后一个连字符,然后向右移动两个空格,并向右删除所有内容

使用正则表达式捕获两个星号之间的所有内容

使用正则表达式提取python中两个定义的单词之间的内容

Python-使用正则表达式存储特殊字符前后的所有内容

正则表达式将{}中两个单词之间的所有内容

正则表达式:选择两个(标签)单词彼此相邻的所有组

正则表达式-在两个自定义定界符中提取内容

Python正则表达式,用于查找两个\ n \ n和\ n \ n之间的所有内容

是否可以通过正则表达式提取具有两个不同名称的相同字段?

正则表达式从一个字符开始获取两个字符之间的所有内容

如何使用python正则表达式获取两个模式之间的所有内容?

如何使用正则表达式替换两个标志符号之间的内容

在python正则表达式中提取字符前后的两个单词

Python中的正则表达式两个字母前后不同的字母

正则表达式删除除两个单词之间的所有连字符

正则表达式查找两个html标签之间的所有内容

用于 python 的正则表达式捕获两个 XML 标记之间的所有内容