str.replace()可以一次处理一整个Series。str.replace()的正式形式为 Series.str.replace(pat, repl) ,其中pat为想要寻找的模式,一般为正则表达式,repl为要替换进去的字符串或函数。

下面是几个简单的例子,X代表一个Series,repl皆为字符串:

X.str.replace(r"iphone\s+7", "iphone7")  #为了将iphone7视为一个词,把iphone 7转换为iphone7,去除空格。
X.str.replace(r"16gbiphone", "16gb iphone") #将16gbiphone转换无16gb iphone,增加空格。
X.str.replace(r"fl\s?\.?\s?oz", "floz") #将fl.oz或fl . oz转换为floz

如果是一些比较复杂的情况,则需要将repl自定义为函数:

1) 将1.101000变为1.101,即将后面的"0"去掉。

remove0 = lambda m:m.group(0).rstrip("")
X.str.replace(r"\d\.\d*[1-9]+0+", remove0)

本例中将repl定义为一个匿名函数,m.group(0)为匹配到的所有字符串,注意其不会匹配到1.000的情况,因为pat中存在[1-9]。

2) 将1.000kg变为1kg,这里因为要去除的.0两个字符位于中间,所以无法用上面的rstrip()

table1 = str.maketrans("","","0.")
remove1 = lambda m:m.group(0).translate(table1)
X.str.replace(r"\.0+[a-z]+", remove1)

例中使用str.maketrans()方法指定想要删除的字符,再用translate()删除

3) 将0.0300kg转换为0.03kg。这里由于0.03本身存在0,所以不能用str.maketrans()了,因为会将所有0都删除。所以这里用两个正则表达式分别找到0.03和kg,再拼接起来:

def remove2(data):
al1 = re.findall(r"\d+\.\d*[1-9]+0+",data.group(0))
al2 = re.findall(r"[a-z]+",data.group(0))
return al1[0].rstrip("") + al2[0] X.str.replace(r"\d+\.\d*[1-9]+0+[a-z]+", remove2)

4) 商品中有很多衣服鞋子之类的,一般都标有尺码,比如3",15”等。这里要把后面的尺码符号‘ ” ’提取出来并用“colon”表示,让模型识别出前面的数字3和15是代表尺码大小。

def findcolon(data):
al1 = re.findall(r'\d{1,2}\.\d{1,3}|\d{1,2}|1\d{2}', data.group(0))
return al1[0]+" colon " X.str.replace(r'(?:\d{1,2}\.\d{1,3}|\d{1,2}|1\d{2})(?:\s?\")', findcolon) # 匹配2.3“, 55", 132"等,转换为2.3 colon

Pandas: 使用str.replace() 进行文本清洗的更多相关文章

  1. 使用Pandas: str.replace() 进行文本清洗

    前段时间参加了Kaggle上的Mercari Price Suggestion Challenge比赛,收获良多,过些时候准备进行一些全面的总结,本篇文章先谈一个比赛中用到的小技巧. 这个比赛数据中有 ...

  2. Pandas系列(四)-文本数据处理

    内容目录 1. 为什么要用str属性 2. 替换和分割 3. 提取子串 3.1 提取第一个匹配的子串 3.2 匹配所有子串 3.3 测试是否包含子串 3.4 生成哑变量 3.5 方法摘要 一.为什么要 ...

  3. str.replace()和re.sub()/calendar.month_abbr/re.subn()/upper和lower和capitalize/贪婪匹配和费贪婪匹配/re.S和re.DOTALL 笔记

    str.replace()可以进行简单的替换 >>> a = 'one.txt, index.py, index.php, index.html, index.js' >> ...

  4. Uncaught TypeError: str.replace is not a function

    在做审核页面时,点击审核通过按钮不执行 后来F12控制台查看发现有报错 是因为flisnullandxyzero未执行 然后找出这个方法,此方法为公共方法,将这个方法复制出来 然后使用console. ...

  5. str.replace替换变量名的字符串

    网易云课堂该课程链接地址 https://study.163.com/course/courseMain.htm?share=2&shareId=400000000398149&cou ...

  6. replace限制文本框只能输入数字,数字和字母等的正则表达式

    1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafte ...

  7. SQL用replace替换文本部分内容

    替换文本内容 update tk_question set stem=replace(cast(stem as varchar(max)) ,'被替换文本','替换文本') 查询字段内容长度 sele ...

  8. 【pandas】pandas.Series.str.split()---字符串分割

    原创博文,转载请注明出处! 本文代码的github地址       series中的元素均为字符串时,通过str.split可将字符串按指定的分隔符拆分成若干列的形式. 例子: 拆分以逗号为分隔符的字 ...

  9. pandas格式化str为时间,pandas将int转化为str

    code_300['HISTORY_DATE'] = code_300['HISTORY_DATE'].map(str)code_300['HISTORY_DATE'] = pd.to_datetim ...

随机推荐

  1. RocketMQ生产消费模型选择

    一. 生产者,根据某个标识将消息放到同一个队列中 在发送消息时,使用SelectMessageQueueByHash,该类根据传入进去的arg,进行hash计算,将消息分配到相应的队列中. publi ...

  2. IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目

    IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...

  3. 数据结构优化dp

    本以为自己的dp已经成熟了没想到在优化上面还是欠佳 或者是思路方面优化dp还不太行. 赤壁之战 当然 很有意思的题目描述 大体上是苦肉计吧 .盖黄 ... 题意是 求出长度为m的严格上升子序列的个数 ...

  4. Windows Server 2012 R2服务器部署Tomcat JDK、安装Mysql以及将Java项目部署到CVM

    我们平时所调试的Java Web 项目需要在本地Eclipse或者MyEclipse当中开发调试,并且部署到Tomcat上来测试,比如说笔者这里用的eclipse添加tomcat服务器, 但是这里发布 ...

  5. Spark入门到精通--(第九节)环境搭建(Hive搭建)

    上一节搭建完了Hadoop集群,这一节我们来搭建Hive集群,主要是后面的Spark SQL要用到Hive的环境. Hive下载安装 下载Hive 0.13的软件包,可以在百度网盘进行下载.链接: h ...

  6. mysql本地安装

    1.下载地址: https://downloads.mysql.com/archives/community/ 2.安装: 解压目录:D:\mysql\mysql-5.6.36-winx64 2.1. ...

  7. Chrome浏览器添加控件

    1. 添加user agent swithcher模拟浏览器内核 方法: 下载user agent switcher后,打开谷歌浏览器,先复制chrome://extensions/  到浏览器地址栏 ...

  8. TCP/IP协议 数据链路层

    以太网 1.以太网(Ethernet)是一种计算机局域网技术,由Xerox.Intel公司在1982年联合开发的技术规范. 2.IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包 ...

  9. 使用纳米 Protocol buffers 作为序列化数据

    使用纳米 Protocol buffers 作为序列化数据 Protocol Buffers 是 Google 公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化. 但是它更小, 更快, ...

  10. 如何创建自己的composer包

    composer中文网 :https://www.phpcomposer.com/ 一.前期准备: composer 安装 Windows安装: 1.下载安装包,https://getcomposer ...