如何修正Pandas代码,提取DataFrame中Critical Care Time后的时长数值?
修正提取Critical Care Time时长的正则表达式
原始数据表
ID RESULT 1 blah blah asc rdsd Critical Care Time : 3,342 job ded... 2 apple asc red Critical Care Time : 322 ED none... 3 computer Critical Care Time : 7,777 cul ninea....
需求
提取“Critical Care Time :”后的时长数值,生成名为Minutes的新列,最终数据表如下:
ID RESULT Minutes 1 blah blah asc rdsd Critical Care Time : 3,342 job ded... 3,342 2 apple asc red Critical Care Time : 322 ED none... 322 3 computer Critical Care Time : 7,777 cul ninea.... 7,777
问题代码
原代码会提取时长后的多余内容:
DF['Minutes'] = DF.RESULT.str.extract(r'Critical Care Time : \s*([^\.]*)\s*\ ', expand=False)
修正后的代码
DF['Minutes'] = DF.RESULT.str.extract(r'Critical Care Time :\s*([\d,]+)', expand=False)
说明
原正则用[^\.]*会匹配所有直到句号的内容,导致捕获无关文本。修正后的正则使用[\d,]+,专门匹配由数字和千分位逗号组成的时长字符串,精准提取目标数值,不会包含后面的多余内容。
内容的提问来源于stack exchange,提问作者Raven
相关产品推荐
相关产品推荐

