Pandas 通过多个正则表达式捕获组创建多个列

我在数据帧中有一列,如下所示:

COMPRA DE MANTENIMIENTO INSUMOS OT:15424 PLACA:TSW894 OC:28826

我想以这种方式创建两个新列:

df[['OT','OC']] = df['FAC_DESC'].str.extract(r'(OT\S*)(OC\S*)')

但是不起作用,(两列都填充了NaN)仅在我只使用一个捕获组或在捕获组之间使用“?”时有效,但只捕获最后一个组。我相信我错过了一些东西...


偶然的你
浏览 99回答 1
1回答

吃鸡游戏

最简单的方法是修改正则表达式模式,以通过添加以下命令来匹配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        OC0  COMPRA DE MANTENIMIENTO INSUMOS OT:15424 PLACA...  OT:15424  OC:28826
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python