从多个正则表达式命名组中提取

界线

我有一个带有文本列的数据框,其中包含多种格式的日期。我已经为所有格式编写了正则表达式。我可以单独运行正则表达式,但是当我尝试一次在数据帧上同时运行它们时,我不断收到错误“ re.error:将组名'month'重新定义为组4;位置为组1” 66“

 d = [{'text':'03/25/93 Total time of visit (in minutes):'}, {'text':'April 11, 1990 CPT Code: 90791: No medical services'},
         {'text':'29 Jan 1994 Primary Care Doctor:'}, {'text':'s1981  Swedish-American Hospital'}]
mdf = pd.DataFrame(d, index=[1,2,3,4])

regexpattern1 = r'(?P<month>\b\d{1,2})[/-](?P<day>\d{1,2})[/-](?P<year>\d{2})\b'
regexpattern2 = r'(?P<month>(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))[.]?[a-z]*(?:,|\s|\-)?(?P<day>\d{2})(?:\-|,|\s)? (?P<year>\d{4})'
regexpattern3 = r'(?P<day>\d{2}) (?P<month>(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))[.]?[a-z]*[,]? (?P<year>\d{4})'
regexpattern4 = r'(?P<month>)(?P<day>)\b[a-za-z]+(?P<year>\d{4})'
# mdf[['month', 'day', 'year']] = mdf['text'].str.extract(regexpattern4) # runs individually
mdf[['month', 'day', 'year']] = mdf['text'].str.extract("|".join([regexpattern1, regexpattern2, regexpattern3, regexpattern4])) # raises error
print(mdf)

Expected Output:
                                                  text month  day year
1           03/25/93 Total time of visit (in minutes):    03   25   93
2  April 11, 1990 CPT Code: 90791: No medical services   Apr   11  1990
3                     29 Jan 1994 Primary Care Doctor:   Jan   29   1994
4                     s1981  Swedish-American Hospital   NaN  NaN  1981

Dint完全可以满足您的要求,但这可能可以帮助您基本上进行正则表达式month(and this can be expanded to cover the 12 months)并提取带特殊字符的数字,,\但前提是这些字符不能跟在后面:

mdf['date']=mdf.text.str.findall('(\b(?:Ma(?:rch)?)|Apr(?:il)?|Jan|[\,\/\d+]+)(?![\d+:])')



mdf.date= [",".join(line) for line in mdf.date.values]#Remove [] brackets
mdf['date']=pd.to_datetime(mdf['date'].str.replace('/', '-'))#.dt.strftime('%d-%m-%Y')(Coerce to datetime)

提取天,月和年

    mdf['day']=mdf.index.day
    mdf['month']=mdf.index.month
    mdf['year']=mdf.index.year
    mdf.reset_index(drop=True,inplace=True)
    print(mdf)
                                                text       date  day  month  \
0         03/25/93 Total time of visit (in minutes): 1993-03-25   25      3   
1  April 11 1990 CPT Code: 90791: No medical serv... 1990-04-11   11      4   
2                   29 Jan 1994 Primary Care Doctor: 1994-01-29   29      1   
3                   s1981  Swedish-American Hospital 1981-01-01    1      1   

   year  
0  1993  
1  1990  
2  1994  
3  1981  
​

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在LibreOffice Calc中提取正则表达式的命名组

来自分类Dev

从正则表达式中提取组

来自分类Dev

在正则表达式匹配中提取组

来自分类Dev

Python正则表达式:提取多个匹配组

来自分类Dev

正则表达式命名组

来自分类Dev

使用正则表达式组从字符串中提取值

来自分类Dev

在Java中使用正则表达式从URL的字符串组中提取数字

来自分类Dev

用于从网页中提取 HTML 标签组的正则表达式

来自分类Dev

如何使用 Java 中的正则表达式提取未知顺序的命名组?

来自分类Dev

如何在熊猫中对命名组使用多个正则表达式

来自分类Dev

正则表达式可以从字符串中提取多个数字吗?

来自分类Dev

正则表达式(java)从多个值url中提取一个值

来自分类Dev

从字符串正则表达式中提取多个值

来自分类Dev

如何从Java中的字符串中提取多个正则表达式匹配

来自分类Dev

使用KornShell从文件中提取正则表达式模式的多个实例

来自分类Dev

Javascript:如何使用正则表达式从字符串中提取多个值?

来自分类Dev

正则表达式从模式中提取多个字段

来自分类Dev

Javascript:如何使用正则表达式从字符串中提取多个值?

来自分类Dev

如何在正则表达式中提取数字,然后选择多个条件

来自分类Dev

从字符串正则表达式中提取多个值

来自分类Dev

如何使用正则表达式从文本中提取由标签分隔的多个引文?

来自分类Dev

正则表达式:从具有多个类的字符串中提取 css 类

来自分类Dev

使用单个正则表达式从 json 中提取多个值

来自分类Dev

通过正则表达式从行中提取特定的多个字符串

来自分类Dev

红宝石正则表达式命名和组

来自分类Dev

Python正则表达式命名组以

来自分类Dev

正则表达式命名组以但不以结尾

来自分类Dev

Android正则表达式命名组

来自分类Dev

替换正则表达式匹配中的命名组

Related 相关文章

  1. 1

    在LibreOffice Calc中提取正则表达式的命名组

  2. 2

    从正则表达式中提取组

  3. 3

    在正则表达式匹配中提取组

  4. 4

    Python正则表达式:提取多个匹配组

  5. 5

    正则表达式命名组

  6. 6

    使用正则表达式组从字符串中提取值

  7. 7

    在Java中使用正则表达式从URL的字符串组中提取数字

  8. 8

    用于从网页中提取 HTML 标签组的正则表达式

  9. 9

    如何使用 Java 中的正则表达式提取未知顺序的命名组?

  10. 10

    如何在熊猫中对命名组使用多个正则表达式

  11. 11

    正则表达式可以从字符串中提取多个数字吗?

  12. 12

    正则表达式(java)从多个值url中提取一个值

  13. 13

    从字符串正则表达式中提取多个值

  14. 14

    如何从Java中的字符串中提取多个正则表达式匹配

  15. 15

    使用KornShell从文件中提取正则表达式模式的多个实例

  16. 16

    Javascript:如何使用正则表达式从字符串中提取多个值?

  17. 17

    正则表达式从模式中提取多个字段

  18. 18

    Javascript:如何使用正则表达式从字符串中提取多个值?

  19. 19

    如何在正则表达式中提取数字,然后选择多个条件

  20. 20

    从字符串正则表达式中提取多个值

  21. 21

    如何使用正则表达式从文本中提取由标签分隔的多个引文?

  22. 22

    正则表达式:从具有多个类的字符串中提取 css 类

  23. 23

    使用单个正则表达式从 json 中提取多个值

  24. 24

    通过正则表达式从行中提取特定的多个字符串

  25. 25

    红宝石正则表达式命名和组

  26. 26

    Python正则表达式命名组以

  27. 27

    正则表达式命名组以但不以结尾

  28. 28

    Android正则表达式命名组

  29. 29

    替换正则表达式匹配中的命名组

热门标签

归档