在处理数据的时候,对数值型的数据处理仍是比较方便的,可是有时候数值型数据出现问题后就会比较头痛了,由于文本数据的排列组合但是有不少不少的,今天咱们就学习一下如何对文本数据进行处理,这样咱们接下来在工做中遇到了这些状况就能够少掉一下头发啦。正则表达式
1、str属性app
文本数据也就是咱们常说的字符串,pandas为series提供了str属性,经过它能够方便对每一个元素进行操做。函数
为了防止数据被弄坏,咱们先预留一个备份以防万一。学习
这里咱们是不能使用backup_user_info = user_info的由于这样的话一个更改另一个也会更改。spa
在以前咱们也已经了解过,在对series中每一个元素处理时,咱们可使用map或apply方法,好比咱们想把星球列下面的地球和外星转换为英文,可使用下面的方式。索引
这时候咱们在将表恢复成原来的样子。rem
首先更改成英文字符串
而后设置一个函数,将星球改成大写,原理为upper()方法get
而后在设置为小写,原理为lower方法pandas
咱们经过str属性来访问以后用到的方法名与 Python 内置的字符串的方法名同样。而且可以自动排除缺失值。 咱们再来试试其余一些方法。例如,统计每一个字符串的长度。
查看城市列中每一个元素有几个字
2、替换和分隔
使用.srt属性也支持替换与分割操做。先来看下替换操做,例如:将大写的R转换为小写的r。
将是否年轻按年进行分隔,结果如上所述。
分割列表中的元素可使用 get 或 [] 符号进行访问:
好比说电影的主演有不少人, 多是用逗号, 或者/ 进行分割, 这是能够用这种方法转换成列表
将爱人列以,号分隔
这时候就可让某一行的这个元素以列表表现出来。
将索引列改成英雄姓名,并查看蜘蛛侠和灭霸的爱人
3、提取子串
既然是在操做字符串,很天然的你们可能会想到是否能够从一个长的字符串中提取出子串。答案是能够的。
一、提取第一个匹配的子串
extract方法接受一个正则表达式并至少包含一个捕获组,指定参数 expand=True能够保证每次都返回DataFrame。例如,如今想要匹配空字符串前面的全部的字母,可使用以下操做:
4、生成哑变量
首先咱们先了解一下什么是哑变量:
哑变量原名为虚拟变量 ( Dummy Variables) 又称虚设变量、名义变量或哑,用以反映质的属性的一我的工变量,是量化了的自变量,一般取值为0或1。引入哑变量可以使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到两个方程的做用,并且接近现实。
在pandas中咱们能够经过get_dummies 方法能够将字符串转为哑变量,sep 参数是指定哑变量之间的分隔符。
从结果能够看出,第0行的英雄姓名是蜘蛛侠,第1行的英雄姓名是灭霸,哑变量转换就是将每个选择匹配哪一行的数据。
从结果能够看出,在地球的英雄是第0、二、三、四、6行的,对应的英雄名称为(蜘蛛侠、奇异博士、钢铁侠、蝙蝠侠、黑寡妇)