首页 > 编程语言 >盘点4种方法用Python批量提取[]括号内的第一个元素

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

时间:2023-04-23 14:36:42浏览次数:32  
标签:Python 逗号 括号 盘点 df apply 思路 lambda


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

大家好,我是Python进阶者。

前言

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


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

数据如下:

盘点4种方法用Python批量提取[]括号内的第一个元素_人工智能_02

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

思路和实现方法

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

方法一

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

方法二

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

方法三

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

盘点4种方法用Python批量提取[]括号内的第一个元素_人工智能_03

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


盘点4种方法用Python批量提取[]括号内的第一个元素_人工智能_04

方法四

下面是【常州-销售-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里面也可以写判断语句,很方便。


标签:Python,逗号,括号,盘点,df,apply,思路,lambda
From: https://blog.51cto.com/u_13389043/6217579

相关文章

  • 盘点一个列表处理基础问题(四种方法),最后两种最惊艳!
    今日鸡汤渡远荆门外,来从楚国游。大家好,我是Python进阶者。本文赠送《轻松学Python》纸质书,活动参与方式见文末。一、前言昨天在Python最强王者群有个叫【老松鼠】的粉丝问了一道关于列表处理的问题,如下图所示。原文本如下所示:[('a',1),('a',2),('a',3),('b',1),('b',2),......
  • 厉害了,Python也能使用动态链接库
    今日鸡汤未谙姑食性,先遣小姑尝。大家好,我是Python进阶者。前言动态链接库(DLL)想必大家都不陌生了吧,C/C++编程经常会用到,那么,它跟我们的Python有什么关系?要说关系恐怕也就是Python是用C写的了,不过,还有一点更重要的关系,那就是Python可以调用C函数,这一点,在Pywin32中有所体现。下面我......
  • 盘点一道使用pandas.groupby函数实战的应用题目
    今日鸡汤声喧乱石中,色静深松里。大家好,我是我是Python进阶者。一、前言前几天Python青铜群有个叫【假装新手】的粉丝问了一个数据分析的问题,这里拿出来给大家分享下。一开始以为只是一个简单的去重问题而已,【编程数学钟老师】大佬提出使用set函数,后来有粉丝发现其实没有想的这么简......
  • Python能不能只选择合并一个excel当中指定的sheet 当中指定的列呢?
    春风桃李花开日,秋雨梧桐叶落时。大家好,我是皮皮。一、前言前几天在Python钻石交流群【不争】问了一个Python自动化办公的基础问题,这里拿出来给大家分享下。二、实现过程这里【瑜亮老师】、【狂吃山楂片】、【一级大头虾选手】给了一个解决思路,如下图所示:方法有很多。【瑜亮老师】......
  • Python正则怎么匹配\啊?
    玉容寂寞泪阑干,梨花一枝春带雨。大家好,我是皮皮。一、前言前几天在Python白银交流群【膨胀西瓜汁】问了一个Python正则表达式的问题,这里拿出来给大家分享下。下面是匹配的结果:二、实现过程这里【论草莓如何成为冻干莓】给了一个思路,在前面加个r,防止转义。后来发现\5不是反斜杠。......
  • 盘点几道Python面试题【ChatGPT作答】
    风吹仙袂飘飖举,犹似霓裳羽衣舞。大家好,我是皮皮。一、前言前几天在Python白银交流群看到了几道Python基础题目,这里拿出来给大家分享下,感兴趣的小伙伴可以学习学习。1、字典、元组、列表、集合的区别是什么?2、什么是装饰器,怎么用?3、为什么要有闭包?4、什么是订阅发布模式,写一个demo5......
  • Python生成requirements.txt方法
    Python生成requirements.txt方法 requirements.txt可以通过pip命令自动生成和安装,这种情况更适用于此项目是单独的虚拟python环境,生成requirements.txt文件。安装requirements.txt依赖:pipinstall-rrequirements.txt1.方法1:生成requirements.txt文件pipfreeze>re......
  • 浅析python中装饰器原理
    一、什么叫装饰器?装饰器(decorator)的本质是一个函数,它接收一个函数作为参数,并返回一个被装饰过后的函数二、装饰器的作用?在不修改被修饰过函数的代码和和调用方式的情况下,给被装饰函数增加额外的功能三、装饰器的应用场景?插入日志、性能测试、事务处理、缓存、权限校验等场景......
  • Python_9 py文件导入和路径处理
    一、查缺补漏Python中两个值交换可以直接交换如:a,b=b,a冒泡就是从小到大排序,因为越到后越大自动导包也适用于自己创建的模块关于正斜杠和反斜杠https://www.cnblogs.com/yangjian319/p/4801675.html 5. 内置异常汇总https://www.cnblogs.com/nmb-musen/p/108......
  • Python之多进程与多线程
     1.1线程frommultiprocessingimportProcessdefshow(name):print("Processnameis"+name)if__name__=="__main__":proc=Process(target=show,args=('subprocess',))proc.start()proc.join()......