范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python自动化ExcelPython与pandas字符串操作

  Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力。
  Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便;对于Excel、csv等表格文件中整列的批量字符串操作,pandas库也提供了简洁高效的处理函数,几乎与内置字符串函数一一对应。也就是说:  单个字符串处理,用Python内置的字符串方法;  表格整列的字符串处理,用pandas库中的字符串函数;
  本文就以常用的数据处理需求,来对比使用以上两种方式的异同,从而加深对   Python   和  pandas   字符串操作的理解。(本文所有数据都是为了演示用的假数据,切勿当真!) 一、替换(去除空格)
  场景:在问卷收集的姓名字段中,不少填写者会误输入空格,造成数据匹配不一致的问题。  Pythonnames = "刘    备、关  羽、   张 飞、赵   云、马 超、黄 忠" names = names.replace(" ","") print(names)
  output  刘备、关羽、张飞、赵云、马超、黄忠pandasdf["姓名"] = df["姓名"].str.replace(" ","")
  output
  pandas替换空格二、分列
  场景:在问卷收集数据的时候,多选题的数据往往是带有分隔符的。在分类汇总前往往需要按分隔符进行分列。
  问卷中多选数据导出PythonhobbyStr = "足球 排球 羽毛球 篮球" hobbyList = hobbyStr.split(" ")
  output  ["足球", "排球", "羽毛球", "篮球"]pandas# 利用split进行分列,expand = True 返回dataframe;expand=False返回Series hobbyDf = df["爱好"].str.split("|", expand=True) # 将hobbyDf 与 df安装索引合并 df2 = pd.merge(df, hobbyDf, how="left", left_index=True, right_index=True)
  分列、合并、导出Excel后效果三、切片:截取数据
  字符串是由一个个字符组成的序列,在Python中可以直接对字符串进行切片操作,来进行截取数据。
  如"XX市四季家园二区22幢203室",可以看作是下图中16个字符值组成的序列。而切片的语法是:
  Python切片原理PythonaddressStr = "XX市四季家园二区22幢203室" print(f"城市:{addressStr[:3]}") print(f"小区:{addressStr[3:9]}")
  output  城市:XX市 小区:四季家园二区pandas提取城市名称,由于城市名称的字数相同,可以直接切片截取前三个。  df["城市"] = df["地址"].str[:3]
  提取城市提取小区名,稍有点复杂。因为小区名称长度是不一样长的。可以利用字符串处理的天花板:   正则表达式   。详细处理方法,见下文  五、正则表达式   示例1。 四、补齐数据
  有时候,我们在电脑中按文件名排序的时候,你可能会遇到下面的情况:
  数值排序和字符排序
  在不同系统中,我们希望是按数值排序,但偏偏系统却是按字符排序的,如某些车载播放器中。比较好的解决方法就是在前面添加0,补齐数据位数。数据量大的时候,手动修改很麻烦,Python字符串处理的   zfill()   函数就可以解决这个问题。 PythonmyStr = "1章节" print(myStr.zfill(4))  # 整个字符串补齐到4位
  output  01章节pandasdf["新文件名"] = "第"+df["文件名"].str[1:].str.zfill(8)
  image-20220330005403437
  配合   os.rename()   便可以批量重命名。关键代码如下 df.apply(lambda x: os.rename( path + x["文件名"], path + x["新文件名"]), axis=1)
  批量重命名演示五、正则表达式
  遇到复杂的字符串处理需求时,Python有优势就可以体现出来了。因为python和pandas有一个超强的字符串处理武器:正则表达式。正则表达式可以匹配字符串的格式特点,如电子邮箱的地址格式、网址的地址格式、电话号码格式等。如何写好正则表达式,这是一门精深的学问,本文介绍几个正则表达式的常用案例,浅尝辄止。
  注:Python默认不支持正则表达式语法,而pandas直接支持正则表达式语法,这里重点介绍pandas处理表格数据。  1.提取长度不一样的小区名
  思路:  提取上面小区名,可以归纳一下地址中小区名的格式特点:   苏州市之后,幢号数字之前的中文字符   。 Series   的  str.extract()   ,可用正则从字符数据中抽取匹配的数据; ## 匹配中文字符的正则表达式: [一-龥] pattern = r"苏州市([一-龥]+)[0-9]+幢" df["小区"] = df["地址"].str.extract(pattern, expand=False)
  提取小区名2.提取几幢几室
  思路:几幢几室,格式都是   数字+幢   和  数字+室  数字可以用   [0-9]   或  d   来匹配; +   表示1个或多个。 pattern = r"([0-9]+)幢" df["幢号"] = df["地址"].str.extract(pattern, expand=False)  pattern = r"(d+)室" df["室号"] = df["地址"].str.extract(pattern, expand=False)
  提取幢号室号六、apply函数
  apply 函数:可以对   DateFrame   进行逐行或逐列进行处理。 1.增加一列,将幢号按照奇偶数分类
  将幢号为奇数的为A区,偶数的为B区  # 定义处理的函数,共apply函数调用,传入的参数为一个Series对象 def my_func(series):     if (series["幢号"]) % 2 != 0:         return "A区"     else:         return "B区"  df["幢号分类"] = df.apply(my_func, axis=1)
  上述代码中apply函数,有两个参数  第一个参数:处理逻辑的函数名。主要传入名称,这里为   my_func   ; 第二个参数:   axis = 1   ,表示按列处理。即传入的是每一行的  Series   。
  output
  apply映射分类2.增加一列,字典映射def my_func2(series):     # 映射字典,key为小区名,value为小区称号     my_dict = {     "吉祥如意家园": "最佳好运小区",      "科技村": "最佳科创小区",      "四季家园": "最佳风光小区",       "万象更新家园": "最佳风采小区",     }     # 每一行小区名称,切片截取至倒数第2个,即-2     nameKey = series["小区"][:-2]     return my_dict[nameKey]  df["小区称号"] = df.apply(my_func2, axis=1)
  output
  apply匹配映射结语
  本文演示的字符串操作:   替换   、  分列   、  切片截取   、  补齐数据   、  正则表达式   、  apply()函数   常见于数据分析的数据清洗环节,  替换   、  分列   、  切片截取   在Excel中也很容易实现,  正则表达式   可以说是Python处理复杂字符串问题的一大利器,  apply()函数   可以实现  自定义函数   处理表格型的数据,十分灵活、威力巨大
  原文参考:https://www.cnblogs.com/wansq/p/16080208.html

超级手机高调回归,然而手机市场还有乐视的位置吗?文东方亦落乐视超级手机即将卷土重来?在乐视官方用带有疑似贾跃亭剪影的海报吊足了大家的胃口之后,乐视智能生态发布会如期举行。贾跃亭自然是不出所料地没有出现在现场,毕竟他总是处于下周回华为手机落单?一季度销量大降33,realme成黑马,销量暴增451华为手机受伤后,受益者不少。5月21日,根据市场研究机构CounterpointResearch最新研究,2021年第一季度realme智能手机销量环比增长82,同比增长451,成为什么四十多年前登月就成功了,现在登月还这么难呢?按照美国媒体的说法,美国开启的阿波罗计划确实在四十多年前实现了载人登月的过程。而对比着现在,世界其它国家都没有实现载人登月。那为什么早在四十多年前就能成功?现在的登月却这么难呢?首如何让手机来电闪光?手机来电时让手机闪光,设置方法其实是很简单的,具体操作如下这里以小米手机为例,首先打开电话,接着点击图标,新界面中选择电话设置,接着选择来电时状态,之后把来电闪光灯打开就可以了,是路透华为与长安汽车在智能汽车方面的合作扩大至芯片5月21日消息,路透援引四位未具名知情人士的话报导,华为正在扩大与长安汽车的智能汽车合作伙伴关系,包括车用芯片的设计和开发。其中两人告诉路透,过去几个月来,两家公司一直在非正式地合2nm被攻克,中芯国际却斥700亿产28nm芯片,是策略失误么?在全球半导体领域,摩尔定律已经接近物理极限。芯片的制程进度一直倍受关注。号称全球晶圆代工巨头的台积电在2010年就已经突破了28nm芯片,这几年更是一路扶摇直上,直接跨过中间多个制荣耀正式确认将采用高通芯片,或许年内就将击败老东家华为5月19日高通在5G峰会上推出全新骁龙778G移动平台,在发布会上正式确认将荣耀手机列为合作伙伴,而荣耀高管表示荣耀50系列将搭载骁龙778G芯片,在解决了芯片供应之后,荣耀手机将市值蒸发19000亿,身家缩水717亿,大学被关停,马云是否顶得住?谈起富豪,国外有比尔盖茨,而国内有双马,马云和马化腾。而马云这个名字,可谓是商界的传奇,不仅一手创办阿里,还开办了湖畔大学,妥妥地成了商业导师。但最近发生的事,让这位顶级富豪也是欲快手电商正式推出品牌合伙人计划微软停止支持IE浏览器2021年5月21日精选资讯如下互联网新鲜事图森未来无人驾驶卡车将24小时行程缩短为14小时无人驾驶汽车公司图森未来周三表示,它们的卡车将原本24小时才能完成的工作缩短了10小时。华为一日千里说起华为,几乎中国家喻户晓,地球村人都知道中国华为!华为科技一日千里,还可以用一个成语不可同日而语。华为在云技术方面好多纬度已经领先于世界,没有之一,请大家注意。华为智能云网,华为全系用上MTK天玑芯片?红米Note10三款机型曝光各家国产手机大厂,基本上半年的旗舰机型都悉数登场了,接下来的新机大多是定位入门中端市场的机型。像最新就有消息曝光红米旗下的RedmiNote10系列已经在路上了。具体的爆料消息是,
GPS将清零谨防重返1999新华社北京3月27日电(记者王立彬)针对GPS即将清零可能影响交通运输天气预报金融结算等,自然资源部专业机构将为国内GPS接收机用户免费提供检测服务。记者27日从自然资源部获悉,美星巴克为什么要回美国送外卖英国哲学家赫伯特斯宾塞提到过这样一个观点社会好比有机体,一个社会组织应该像生命组织一样符合进化的要求。企业同样也是如此。进化无可避免。对星巴克来说,它在的进化可能就是基于数字化转型腾讯又一大动作!在线音乐巨无霸来了中国基金报安曼综合银杏财经等2018年12月12日,QQ音乐酷我音乐酷狗音乐全民K歌组成的腾讯音乐以中国在线音乐巨无霸的姿态在登陆纽交所。汤道生(腾讯音乐董事长)谢国民(酷我音乐董他31岁,打造了中国估值最高的AI企业屏幕显示着旷视科技北京总部周围的情况。该软件发现人员和物体后,能够对其识别,并确认其身份。StefenChowforForbes旷视科技(MegviiTechnology)的总部位腾讯对中层干部动刀原腾讯网总编辑王永治被宣布退休雷帝网雷建平3月27日报道自腾讯高层提到要裁撤掉10比例的中干后,腾讯内部已悄然在对中层干部动刀。雷帝网获悉,原腾讯网总编辑资讯运营部总经理王永治今天下午以内部邮件形式宣布退休。王学会这一招,再也不怕微信图片文件会过期了现在,很多人都会用微信作为主要的工作沟通工具。除了日常的协作交谈,人与人之间还会出传送工作文件。这个文件虽然量不一定会很大,但要整理起来还是一件很麻烦的事。当你没有及时下载和保存,共享单车涨价!小蓝单车摩拜已宣布,ofo会涨吗?资料图江西南昌一共享单车停放点。中新社记者刘占昆中新网客户端北京3月30日电(张旭)继小蓝单车21日上调骑行价格后,摩拜单车也跟进了。这让小蓝车最贵共享单车的称号并没有保持多久,而SiliconPower推出MobileC10USBTypeCU盘几年前推出USBTypeC接口时,业界花了很长时间才采用它,这就是为什么USB闪存驱动器的制造商提供同时具有USBTypeA和USBTypeC接口产品的原因。随着新界面正在成为新智4K价位无敌手小米笔记本15。6英寸2019版发布此前,小米正式发布了12。5英寸的小米笔记本Air八代增强版,在全新的第八代酷睿处理器的加持下,其相较于上一代产品,在性能方面有了不小的提升。随着小米笔记本Air八代增强版的正式上创建一个机器学习算法,用不到30行的Python代码预测NCAAB得分在Python和一些很棒的库的帮助下,你可以构建自己的机器学习算法,用不到30行代码预测NCAAB比赛的最终得分。本内容旨在解释创建机器学习应用程序所需的所有步骤,包括设置,数据检出海记俄智能手机销量下滑中国品牌逆势增长俄媒称,俄罗斯市场智能手机销量2019年下滑趋势明显,华为品牌手机1月份的销量却较去年同期增加70。俄罗斯卫星通讯社3月7日援引俄罗斯生意人报的报道称,据零售商数据,2019年2月