[TOC]
*****
dataframe与series中经常有文本格式的数据存在,pandas提供了良好的工具用来处理这些文本
```
#用列表创建Series
s = pd.Series(['A', 'B', 'C', 'Aaba ', ' Baca', 'CABA ', 'dog', 'cat'])
```
![](https://img.kancloud.cn/be/58/be5811e1612a93d6223f222e391c4fe3_155x193.png)
```
#调用s.str将series-S变为String 然后再去除两端空格
s.str.strip() # 去除空格
```
![](https://img.kancloud.cn/06/ab/06aba2e6f60e742d624fdd9aa1007041_166x193.png)
```
# 将字符串转换成大写
s.str.upper()
```
![](https://img.kancloud.cn/90/9d/909d8ad42d5a2f5b9c4c40e14f2cb026_182x197.png)
```
#pandas中字符串函数可以连用,strip之后仍然是series需要再调用str变为字符串,并寻找结尾为a的字符串
s.str.strip().str.endswith("a")
```
![](https://img.kancloud.cn/46/3f/463ff735463d7608c35f6dc6f41e6d1d_162x198.png)
```
#外面再套一个series,会返回结果为true的值
s[s.str.strip().str.endswith("a")]
```
![](https://img.kancloud.cn/1b/a4/1ba45d1ccecf57ec042a1583a3eea5cb_180x76.png)
*****
一个很常用的场景就是当你的index或者column名称前后包含了空格的时候,你可以用str的方法剔除这些空格,从而避免不必要的麻烦
```
#注意age和name前后有空格
a = {"name ":["xiaoming","xiaohong","xiaogang"]," age":[12,13,14]}
test = pd.DataFrame(data = a)
```
#此时列名age和name有空格,但看不出来
![](https://img.kancloud.cn/79/25/7925ee332c02bb446f4e3c0881400241_331x219.png)
这时
```
#会报错,是test[' age']
test['age']
```
去掉列名前后空格,这次打印正确
```
test.columns = test.columns.str.strip()
test['age']
```
![](https://img.kancloud.cn/bb/26/bb2646cfe2095ef33e719f13ed0c5e19_248x84.png)
### 1.5.1. Splitting and Replacing String
split方法用于根据某个分隔符对字符进行分割,返回一个列表
```
#取Player列所有数据
df['Player']
```
![](https://img.kancloud.cn/35/06/35065d0761afe2fb6888f2939f2dc951_395x231.png)
目标将姓和名进行分割
```
#.str将series变成字符串对象再用split 结果
df['Player'].str.split(" ")
```
![](https://img.kancloud.cn/6f/73/6f7392c1bbbfae44efe4e244d02be236_316x212.png)
*****
取得Player列分割后所有列表的第一个元素(姓)
```
# 使用get方法获取指定位置的元素
df['Player'].str.split(" ").str.get(1)
```
![](https://img.kancloud.cn/e3/85/e3856036196e5b7916cd30e1b10ee3ca_233x228.png)
```
# 使用expand方法,将分割出的列表变为多个列,expand-扩展
df['Player'].str.split(" ",expand = True)
```
![](https://img.kancloud.cn/aa/b1/aab18303d4d7e5d5ab3fb1b92018082d_238x236.png)
*****
使用\[\]对字符串的位置进行索引选取
```
#.str应用在Player列的每一个元素上,将series的元素变为字符串,对字符串使用切片索引选取
df['Player'].str[:3]
```
### 1.5.2. Extracting substring
通过正则表达式选取字符串中的子集
- 第五节 Pandas数据管理
- 1.1 文件读取
- 1.2 DataFrame 与 Series
- 1.3 常用操作
- 1.4 Missing value
- 1.5 文本数据
- 1.6 分类数据
- 第六节 pandas数据分析
- 2.1 索引选取
- 2.2. 分组计算
- 2.3. 表联结
- 2.4. 数据透视与重塑(pivot table and reshape)
- 2.5 官方小结图片
- 第七节 NUMPY科学计算
- 第八节 python可视化
- 第九节 统计学
- 01 单变量
- 02 双变量
- 03 数值方法
- 第十节 概率
- 01 概率
- 02 离散概率分布
- 03 连续概率分布
- 第一节 抽样与抽样分布
- 01抽样
- 02 点估计
- 03 抽样分布
- 04 抽样分布的性质
- 第十三节 区间估计
- 01总体均值的区间估计:𝝈已知
- 02总体均值的区间估计:𝝈未知
- 03总体容量的确定
- 04 总体比率