Python 语言由于在处理字符串和文本方面非常方便,因而深受欢迎。大多数字符串操作使用 Python 内置函数就能轻松实现。在 pandas 字符串操作中,常用的字符串处理方法如下。
字符串拆分
split() 函数的作用是通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串,其语法格式如下:
str.split(str="", num=string.count(str))
该函数参数说明如下:
str:表示字符串的分隔符,默认为所有的空字符,包括空格、换行“\n”、制表符“\t”等;
num:表示分割次数。
函数返回值为分割后的字符串列表。
示例代码 example1.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.split(' '))
print(str.split(' ',str.count(' '))
print(str.split(' ',2))
移除字符串头尾指定的字符
strip() 函数可用于移除字符串头尾指定的字符(默认为空格),其语法格式如下:
str.strip(chars)
该函数中参数 chars 表示移除字符串头尾指定的字符。
函数返回值为移除字符串头尾指定的字符生成的新字符串。
示例代码 example2.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.strip('#')
字符串连接
join() 函数可以将字符串、元组、列表中的元素以指定的字符(分隔符)连接成一个新的字符串,其语法格式如下:
'sep'.join(seq)
该函数参数说明如下:
sep:表示字符串的分隔符,可以为空;
seq:表示要连接的元素序列、字符串、元组、字典。
函数返回值为一个以分隔符 sep 连接各个元素后生成的字符串。
除了 join() 函数外,还可以用“+”号将多个字符串连接起来。
示例代码 example3.py 如下。
# -*- coding: utf-8 -*-
arr = ['a','b','c']
str = arr[0]+':'+arr[1]+':'+arr[2
print(str)
str1 = ':'
str2=arr
print(str1.join(str2))
判断是不是子字符串
判断是不是子字符串可以使用 in 关键字,或者使用 find() 函数和 index() 函数判断一个子字符串的位置。
find() 函数用于查找子字符串,若找到返回从 0 开始的下标值,若找不到返回 -1。其语法格式如下:
str.find(chars)
该函数中参数 chars 表示要查找的子字符串。
函数返回值为返回子字符串第一次出现的位置的下标值。
index() 函数用于在字符串里查找子串第一次出现的位置,类似字符串的 find 方法,不过比 find 方法更好的是,如果查找不到子串,会抛出异常,而不是返回 -1,其语法格式如下:
str.index(chars)
该函数中参数 chars 表示要查找的子字符串。
函数返回值为返回子字符串第一次出现的位置的下标值。
示例代码 example4.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.find('s'))
print(str.index('s'))
if 's' in str:
print(str.find('s'))
print(str.find('o'))
print(str.index('o'))
判断子字符串出现的次数
count() 函数可用于统计字符串里某个字符出现的次数,函数的可选参数为字符串搜索的开始与结束位置。其语法格式如下:
str.count(sub,start,end)
该函数参数说明如下。
sub:表示搜索的子字符串。
start:表示字符串开始搜索的位置,默认为第一个字符,第一个字符索引值为 0。
end:表示字符串中结束搜索的位置,默认为字符串的最后一个位置。
函数返回值为返回子字符串在字符串中出现的次数。
示例代码 example5.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.count('s'))
print(str.count('s',0,5))
print(str.count('s',5,len(str)))
替换子字符串
replace() 函数可将字符串中的 old(旧字符串)替换成 new(新字符串),如果指定第 3 个参数 max,则替换不超过 max 次。其语法格式如下:
str.replace(old, new[, max])
str.count(sub,start= 0,end=len(string))
该函数参数说明如下:
old:表示将被替换的子字符串;
new:表示新字符串,用于替换 old 子字符串;
max:可选项,表示替换不超过 max 次。
函数返回值为返回字符串中的 old(旧字符串)替换成 new(新字符串)后生成的新字符串,如果指定第 3 个参数 max,则替换不超过 max 次。
示例代码 example6.py 如下。
# -*- coding: utf-8 -*-
str = "新浪网www.sina.com"
print (str.replace('com','cn.com')
str = "#this is string example##"
str1 = str.replace('is', 'was')
str2 = str1.replace('#','!',2)
print(str1,'\n',str2)