Python正则表达式提取Total Hours及数值并生成DataFrame的问题
解决正则匹配问题:同时匹配整数与带.00后缀的数值
修改后的正则表达式与代码
原正则仅匹配带.00后缀的数值,无法兼容Total Hours对应的整数75。调整Weight分组的匹配规则,让它同时支持整数和小数格式:
out = (s.str.extractall(r'(?P<Object>Course Credits:|Total Hours)|(?P<Weight>\d+(?:\.\d+)?)') .groupby(level=0).first() )
正则规则说明
(?P<Object>Course Credits:|Total Hours):保留原逻辑,匹配目标字段名(?P<Weight>\d+(?:\.\d+)?):\d+:匹配1位及以上数字(整数部分)(?:\.\d+)?:可选的小数部分,?:表示非捕获分组,?代表该部分可省略,既匹配75这类整数,也能匹配XX.00这类带小数的数值
效果说明
修改后代码可同时提取Course Credits:对应的带.00权重值,以及Total Hours对应的整数75,生成符合预期的DataFrame。
内容的提问来源于stack exchange,提问作者user20153724
相关产品推荐
相关产品推荐

