首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫- series.str.extract正在放弃捕捉组的第一个角色。

熊猫- series.str.extract正在放弃捕捉组的第一个角色。
EN

Stack Overflow用户
提问于 2020-12-15 02:52:50
回答 1查看 40关注 0票数 0

我需要从下一个系列中提取日期:

0 03/25/93总访问时间(分钟):\n

1 6/18/85初级保健医生:\n

她计划从7/8/71在家中搬家.

37在9/27/75审计C评分目前:\n

4 2/6/96睡眠studyPain治疗疼痛水平。

5 .Per 7/06/79 D/O运动说明:\n

6,4,5/18/78例患者对当前诊断的思考。

7 10/24/89 CPT代码: 90801 -精神科Diagnos.

8 3/7/86 SOS-10总分:\n

9(4/10/71)评分-1审计C分数当前:\n

10 (5/11/85) Crt-1.96,BUN-26;AST/ALT-16/22;WBC.

11 4/09/75 SOS-10总分:\n

12 8/01/98与转介医生的来文.

13 1/26/72与转介医生的来文。

1990年5月24日“防止酷刑法”:90792:有医疗服务.

2011年1月25日“防止酷刑法”:90792:含医疗服务.

16 4/12/82总访问时间(分钟):\n

1976年10月13日审计C评分最高/日期:\n

我正在用下面的正则表达式来尝试它

Df.str.extract(‘.(\d{1,4}/\d{1,4}/\d{1,4}’)

但是,既然我指定了{1,4},为什么它要删除前两个数字中的第一个数字呢?

例如,在第7行和第17行,它应该分别提取'10/24/89‘和'10/13/1976’,而不是'0/24/89‘和'0/13/1976’。

我还试图在捕获组的开头添加一个'?:‘,但是它不起作用。

事先谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-12-15 03:05:13

我会在日期前后设置单词边界,即使用以下模式:

代码语言:javascript
运行
复制
\b(\d+/\d+/\d+)\b

更新代码:

代码语言:javascript
运行
复制
df['date'] = df['col'].str.extract('\b(\d+/\d+/\d+)\b')

下面是一个regex演示,显示了上面的模式是正确工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65299371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档