我需要从下一个系列中提取日期:
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’。
我还试图在捕获组的开头添加一个'?:‘,但是它不起作用。
事先谢谢!
发布于 2020-12-15 03:05:13
我会在日期前后设置单词边界,即使用以下模式:
\b(\d+/\d+/\d+)\b
更新代码:
df['date'] = df['col'].str.extract('\b(\d+/\d+/\d+)\b')
下面是一个regex演示,显示了上面的模式是正确工作的。
https://stackoverflow.com/questions/65299371
复制相似问题