为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

偶然的你 2022-08-16 18:22:09
我在数据帧中有一列,如下所示: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


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信