开发者学堂课程【Python 常用数据科学库:字符串操作】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/546/detail/7492
字符串操作
内容介绍
一、大小写转换
二、计算字符串长度
三、去空格操作
四、数据替代
五、数据切分
一、大小写转换
1、关于 pandas 怎样处理字符串,这相对来说都是稍微简单的一些操作。首先把panda 导进来,构造一个 Serie s结构, 在 Series 结构中,指定一些字符串,A b B然后还有一些
字符值 gear AGER ,还可以指定 np.nan 值
import pandas as pd
import numpy as
s = pd.Series(['A‘,’b’,’B' ,’gaer’, AGER",np.nan])
s
执行一下,这就是当前的一个 series 串,
2、对于当前这个串来说,如果想对里面的数据进行操作,就在 series 当中把 str 调进来,str 里有一个 lower,可以进行大小写转换,s.str.lower(),转换完的结果所有大写字母都变成了小写字母,这是最基本一点,先可以进行字符串的转换,然后可以转换小写,如果转换大写把 lower 转换成 upper 就可以了。
二、计算字符串长度
1、统计每个串分别有多长,算它的len值,也可以当成是一个特征,s. str. len() 相当于计算了一下当前串的长度是多大的。
三、去空格操作
1、定位了 index 的索引, index 里传进来一堆数据,tang、yu、di
index = pd.Index ([‘ tang’,’ yu ‘,’di’])
index
这就是当前的 index 值
2、然后打印一下 Index([‘ tang’,’ yu ‘,’di’], dtype=’object’) 中间带一个空格,如果要把空格去掉,把 str 调进来,然后去调 strip,Index.str.strip 执行一下就没有空格了。不光可以全去掉,也可以只去掉左边的空格,代码是Index.str.ltrip ,只去掉右面的代码是 Index.str.rstrip。去左去右或者全去掉都是可以的,主要是看自己的需求。
四、数据替代
1、构造一个 df,然后构造一个 Data Frame,在 Data Frame 当中写上当前的一个数据。比如说随便传进来一个三行二列的数,然后指定一个列名 A,B,再写一个索引index,需要三个数,直接写数字3
df = pd. DataFrame(np.random.randn(3.2), columns = ['A’,'B'].index = range(3))
Df
执行一下
这就是当前的 Data Frame 值。
2、如果要去改变一些值,比如说在索引里多加两个字母 ab,原来的索引就变成了 A a B b,这个列名看起来比较奇怪,要把列名改一下,把 Data Frame 调进来,可以把列名换一下,换一下列名就叫字符串操作,字符串当中可以执行的是 replace 的操作,replace 里面把空格给它换成一个下杠
df.columns =df.columns.str.replace(’ ‘ , ‘_’)
执行这样一个操作,原来是A a B b,现在就变成 A_a B_b,这个就是说可以执行一些操作,执行完之后,结果也会发生一些变化,可以进行值的替代。
五、数据切分
1、不只有替代,还得有切分,s 等于 pandas 点 Series,里面随便传进来一些值,第一个是 a_ b_C,第二个值是 c_d_e,di第三个值 f_g_ h,执行这是一个 Series 结构,接下来可以调 s 在 str 当中的操作,这个操作就是 split, s.str.spilt(_) 可以把它进行一个切分,比如说原来的数据_表示这两个字段连在一起了,现在要把两个字段给分开,切分完变成一个像 list 的结构。
2、之前是这么定义的 a_ b_C 中 a 是一个字段,b 是一个字段,C 又是一个字段,切完之后希望得到的是一个新的字段,
在 s.str.spilt(‘_’) 里面加进来一个参数,就是以什么为分割,然后加上 expand 扩充一下,让它等于一个 True 值,s.str.spilt(‘_’ , expand = True)
执行一下结果多了三个列,第一个数据 abc,第二个是 cde,第三个 fgh,也就是数据都切分开了。
3、切分的时候还可以加上一些限制,再加一个 n 值等于1,s.str.spilt(‘_’ , expand = True,n=1) 相对来说就是这里面 a 它是一个 bc 连在一起了,其他两列也是一样的,相当于做了一个限制,n=2 是又会得另外一个结果,n=1 相当于是只能切分一次,后面是一个整体,n=2 相当于相当于是切分了两次。
4、在这个字符串当中,还可以进行一个包含的判断。比如说 s 等于 pandas 点Series,里面的数据还是随便写几个
s = pd.Series(['A’,‘Aas’,‘Afgew', ’Ager‘,’ Agre','Ager'])
s
s 长这个样子
接下来可以用 s 点 str,然后去进行一个判断,看它是不是包含当前的某一个元素,比如说看它是不是包含 Aas, s.str.contains(‘Aas’) 一回车就能得到结果 ,第一个元素没有第二个元素有,第三个元素没有,第四个元素没有。直接写个 A,结果都是 True,因为它里面都包含 A,写 Ag 会出现好几个 True,相当于是可以执行这样一个判断,判断完之后它就会给返回,当前在这个 series 当中,它判断一下里面是不是有这样包含的操作。
5、构造一个 Series,在这个 Series 中构造一些特别的,a,a|b,a|c,这是当前这个数据,有几个值被下杠分开了。要把这个东西切分开看一看,一共有多少个可能性。这个时候调 s 的串结构,它里面有 get_dummies,dummies 之后还可以单独来拿出来说一说,这个东西还是比较有用的,在 dummies 里面指定一个分割符,分割符是参数,
s.str. get_dummies(sep =’|’)
执行一下,这样 abc 就被切分出来了,可以通过 get_dummies 把值拿出来,这个就是 pandas 当中对于字符串的一些操作,对于字符串操作还是有蛮多的,感兴趣的话可以去看一下。