pandas向量化字符串操作方法!

作者:小伍哥 

来源:AI入门学习

python内置一系列强大的字符串处理方法,但这些方法只能处理单个字符串,处理一个序列的字符串时,需要用到循环。

那么,有没有办法,不用循环就能同时处理多个字符串呢,pandas的向量化操作就提供了这样的方法。

向量化的操作使我们不必担心数组的长度和维度,只需要关系操作功能,尤为强大的是,除了支持常用的字符串操作方法,还集成了正则表达式的大部分功能,这使得pandas在处理字符串列时,具有非常大的魔力。

例如,要计算每个单词中‘a’的个数,下面一行代码就可以搞定,非常高效。

假如用内置的字符串函数进行操作,需要进行遍历,且Python原生的遍历操作无法处理缺失值。

#用循环进行处理

#存在缺失值时,打印报错

Pandas的向量化操作,能够正确的处理缺失值,无报错信息,如下:

通过上面的例子,对向量化进行简单总结,向量化是一种同时操作整个数组而不是一次操作一个元素的方法,下面从看看具体怎么应用。

向量化的字符方法

Pandas的字符串属的方法几乎包括了大部分Python的内置字符串方法(内置共有45个方法),下面将列举一些常见的方法的用法,例如上面的count()方法将会返回某个字符的个数,而len方法将会返回整个字符的长度。

下面选取部分函数举例,其他函数参考字符串模块:Python字符串的45个方法详解

len()

lower()

zfill()

右对齐,前面用0填充到指定字符串长度。

向量化的正则表达式

Pandas的字符串方法根据Python标准库的re模块实现了正则表达式,下面将介绍Pandas的str属性内置的正则表达式相关方法。

split()

split,按指定字符分割字符串,类似split的方法返回一个列表类型的序列

#按数字分割

切分后的列表中的元素可以通过get方法或者 [] 方法进行读取

使用expand方法可以轻易地将这种返回展开为一个数据表。

同样,我们也可以限制切分的次数:

rsplit()

rsplit与split相似,不同的是,这个切分的方向是反的。即,从字串的尾端向首段切分。

replace ()

replace方法默认使用正则表达式

findall()

提取聊天记录中的QQ号

其他向量化的方法

除了上面介绍的Pandas字符串的正常操作和正则表达式外,Pandas的str属性还提供了其他的一些方法,这些方法非常的有用,在进行特征提取或者数据清洗时,非常高效,具体如下:

wrap()

pad()

slice()

get()

slice_replace()

切片替换

get_dummies()

另一个需要好好解释的是get_dummies()方法,举个例子:假如我们用A,B,C,D来表示一个人的某个特征:

repeat()

cat()

作用:连接字符串 

用法:Series.str.cat(others=None, sep=None, na_rep=None) 

参数: 

  • others : 列表或复合列表,默认为None,如果为None则连接本身的元素 
  • sep : 字符串 或者None,默认为None 
  • na_rep : 字符串或者 None, 默认 None。如果为None缺失值将被忽略。 

返回值: concat : 序列(Series)/索引(Index)/字符串(str)

猜你喜欢

转载自blog.csdn.net/yoggieCDA/article/details/109841087