盘点4种方法用Python批量提取[]括号内的第一个元素

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

葡萄美酒夜光杯,欲饮琵琶马上催。

大家好,我是Python进阶者。

前言

前几天在才哥交流群里边遇到一个叫【上海-数据分析-小粒】的粉丝提了一个小问题,如下:

500da7d1d2f4c82b65fab7286e7d53f3.png

数据如下:

d5a0be0a37dce91ec5d037071a21264c.png咋一看,这个题目倒是也确实不太难,群里提供思路的人也很多,一起来看看吧!

思路和实现方法

针对这个问题,群里的小伙伴纷纷献策,这里盘点4个思路和实现方法。

方法一

下面是【北京-数分-阿汤】大佬给的思路,使用列表切两次,分别以一次逗号,一次括号,要做判断,如果没逗号就切括号;还有就是写正则。

方法二

下面是【深圳-运营-梧桐】大佬给的思路,使用excel分列,先根据逗号分列,然后分别将括号[]替换掉,几秒钟的事。

方法三

下面是【武汉-优化算法-derek】大佬给的思路和代码实现,本质上也是切片处理。

83ef01b6a031a9d4d58bb0cc071cedd3.png不过产品经理发话了,有的数据没逗号,需要加条规则,把右括号先替换为逗号,然后就有了下面的结果:

3d917b91008b329a85fdb726982a2edf.png
方法四

下面是【常州-销售-MT】大佬给的思路和【北京-金融-Bran】大佬给的代码实现,使用lambda x:eval(x)转列表,用apply效率应该能提高一些,代码如下:

df['新增一列']=df.数据1.apply(lambda x:x.replace('[','').replace(']',''))
df.新增一列=df.新增一列.str.split(',',expand=True)[0]

但是需要注意:原来字符串不能直接搞成list,否则就都拆散了。

总结

这篇文章基于粉丝提问,盘点了4种方法针对模板字符串进行分割和提取,总的来说,用apply会快很多,因为apply跟lambda可以简化很多操作,而且lambda里面也可以写判断语句,很方便。

最后感谢【上海-数据分析-小粒】粉丝提问,感谢【北京-数分-阿汤】、【深圳-运营-梧桐】、【武汉-优化算法-derek】、【常州-销售-MT】、【北京-金融-Bran】大佬给出的思路和代码。当然方法肯定还不只是上面4种,也欢迎大家多多发散思维,提出新的方法。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

8705addaf3b8f336f0ce8f81ad11d732.png

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

85973714312a6014dcf13cc70821269e.png

------------------- End -------------------

往期精彩文章推荐:

9142bdbcb6f8b36ccc49129bd5ab16cf.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值