我在数据帧中有一列,如下所示:COMPRA DE MANTENIMIENTO INSUMOS OT:15424 PLACA:TSW894 OC:28826我想以这种方式创建两个新列:df[['OT','OC']] = df['FAC_DESC'].str.extract(r'(OT\S*)(OC\S*)')但是不起作用,(两列都填充了NaN)仅在我只使用一个捕获组或在捕获组之间使用“?”时有效,但只捕获最后一个组。我相信我错过了一些东西...
1 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
最简单的方法是修改正则表达式模式,以通过添加以下命令来匹配OT和OC之间的单词:.*
df = pd.DataFrame({"col":["COMPRA DE MANTENIMIENTO INSUMOS OT:15424 PLACA:TSW894 OC:28826"]})
df[['OT','OC']] = df['col'].str.extract(r'(OT\S*).*(OC\S*)')
print (df)
col OT OC
0 COMPRA DE MANTENIMIENTO INSUMOS OT:15424 PLACA... OT:15424 OC:28826
添加回答
举报
0/150
提交
取消