相关知识
在使用pandas框架的DataFrame的过程中,如果需要处理一些字符串的特性,例如判断某列是否包含一些关键字,某列的字符长度是否小于3等等这种需求,如果掌握str列内置的方法,处理起来会方便很多。
实操
1.打开终端模拟器,在命令行输入ipython notebook --ip='127.0.0.1',在浏览器中会打开界面,点击New,在其下拉框中选择Python3.
2.新建一个ipynb文件,用于编写并执行代码。
3.cat() 拼接字符串
import pandas as pd
pd.Series(['a', 'b', 'c']).str.cat(['A', 'B', 'C'], sep=',')
4.split()切片字符串
import numpy as np
s=pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
print(s)
s.str.split('_')
s.str.split('_',-1)
s.str.split('_',1)
5.get() 获取指定位置的字符串
s.str.get(0)
s.str.get(1)
s.str.get(2)
6.join() 对每个字符都有用,将字符串拼接起来,不常用
s.str.join("!")
s.str.join("?")
s.str.join(".")
7.contains() 是否包含表达式,返回True或False。
8.replace() 字符串替换
9.repeat() 重复
10.pad() 左右补齐
s.str.pad(10, fillchar="?")
s.str.pad(10, side="right", fillchar="?")
11.center() 中间补齐
12.ljust() 右边补齐
13. rjust() 左边补齐
14.zfill() 左边补0
15.wrap() 在指定的位置插入回车符号
16.slice() 按字符串下标的开始结束位置切割字符串。
17.slice_replace()使用给定的字符串,替换指定位置的字符。
s.str.slice_replace(1,3,'?')
s.str.slice_replace(1, 3, "??")
18.count() 计算给定单词出现的次数
19.startswith()判断是否以给定的字符串开头,返回True或False。
20.endswith()判断是否以给定的字符串结束,返回True或False。
21.findall() 查找所有符合正则表达式的字符,以数组形式返回
22.match() 检测是否全部匹配给定的字符串或者表达式。
23.extract() 抽取匹配的字符串出来,注意要加上括号,把你需要抽取的东西标注上
24.len() 计算字符串的长度
- s.str.len()
25.strip()去除前后的空白字符
- idx = pd.Series([' jack', 'jill ', ' jesse ', 'frank'])
- print(idx)
- idx.str.strip()
26.rstrip() 去除后面的空白字符
- idx.str.rstrip()
27.lstrip() 去除前面的空白字符
- idx.str.lstrip()
28.partition() 把字符串数组切割称为DataFrame,注意切割只是切割成为三部分,分隔符前,分隔符,分隔符后.
- s.str.partition('_')
29.rpartition() 从右切起
- s.str.rpartition('_')
30.lower() 全部小写
- s.str.lower()
31.upper() 全部大写
- s.str.upper()
32.find() 从左边开始,查找给定字符串的所在位置,没有返回-1。
- s.str.find('d')
33.rfind() 从右边开始,查找给定字符串的所在位置
- s.str.rfind('d')
34.index() 查找给定字符串的位置,注意,如果不存在这个字符串,那么会报错!
- s.str.index('_')
35.rindex() 从右边开始查找,给定字符串的位置。
- s.str.rindex("_")
36.capitalize() 首字符大写
- s.str.capitalize()
37.swapcase()大小写互换
- s.str.swapcase()
38.isalnum()字符串至少包含一个字符且所有字符都是字母(汉字)或数字则返回True。
- s.str.isalnum()
39.isalpha()字符串至少包含一个字符且所有字符都是字母(汉字)则返回True。
- s.str.isalpha()
40.isdigit()是否全部是数字(可以是: Unicode, 全角字符, bytes(b'1'), 罗马数字)。
- s.str.isdigit()
41.isspace()是否只包含空白符。
- s.str.isspace()
42.islower()至少包含一个小写字符, 且不包含大写字符。
- s.str.islower()
43.isupper()至少包含一个大写字符, 且不包含小写字符。
- s.str.isupper()
44.istitle()判断是否只有首字母大写,其他都小写。
- s.str.istitle()
45.isnumeric()是否只包含数字字符
- s.str.isnumeric()
46.isdecimal()是否只包含数字(Unicode字符, 全角字符)。
- s.str.isdecimal()
47.把字符串按照指定分隔符分割, 并返回分割后的字符串出现的次数。
- s.str.get_dummies(sep='_')