本次来介绍关于文本处理的常用方法。
文本的主要两个类型是string
和object
。如果不特殊指定类型为string
,文本类型一般为object
。
文本的操作主要是通过访问器str
来实现的,功能十分强大,但使用前需要注意以下几点。
-
访问器只能对
Series
数据结构使用。 除了常规列变量df.col
以外,也可以对索引类型df.Index
和df.columns
使用 -
确保访问的对象类型是字符串
str
类型。 如果不是需要先astype(str)
转换类型,否则会报错 -
访问器可以多个连接使用。 如
df.col.str.lower().str.upper()
,这个和Dataframe
中的一行操作是一个原理
下面正式介绍文本的各种骚操作,基本可以涵盖日常95%的数据清洗需要了,一共 8 个场景。
以下操作均基于下面的数据:
import pandas as pd
import numpy as np
df = pd.DataFrame({'name':['jordon', 'MIKE', 'Kelvin', 'xiaoLi', 'qiqi','Amei'],
'Age':[18, 30, 45, 23, 45, 62],
'level':['high','Low','M','L','middle',np.nan],
'Email':['jordon@sohu.com','Mike@126.cn','KelvinChai@gmail.com','xiaoli@163.com',np.nan,'amei@qq.com']})
--------------------------------------------
name Age level Email
0 jordon 18 high jordon@sohu.com
1 MIKE 30 Low Mike@126.cn
2 Kelvin 45 M KelvinChai@gmail.com
3 xiaoLi 23 L xiaoli@163.com
4 qiqi 45 middle NaN
5 Amei 62 NaN amei@qq.com
1、文本格式
大小写变换
# 字符全部变成小写
s.str.lower()
# 字符全部大写
s.str.upper()
# 每个单词首字母大写
s.str.title()
# 字符串第一个字母大写
s.str.capitalize()
# 大小写字母转换
s.str.swapcase()
上面用法都比较简单,不逐一举例,这里举一个对columns
变成小写的例子。
df.columns.str.lower()
--------------------------------------------------------
Index(['name', 'age', 'level', 'email'], dtype='object')
格式判断
下面均为判断操作,因此返回布尔值。
s.str.isalpha # 是否为字母
s.