【编程实践】Joyful-Pandas(下)Task02(第七章):文本数据
缺失数据和文本数据(尤其是混杂性文本)是数据预处理中比较麻烦的类型,本章节聚焦于文本数据。
理论部分
- 掌握基本正则表达式的用法
- 理解string类型的性质
- 掌握文本类型的5类操作
- 熟悉常见字符串方法
练习部分
- 两道文本数据练习题
import pandas as pd
import numpy as np
string类型的性质
string与object的区别
string类型和object不同之处有三:
- 字符存取方法(string accessor methods,如str.count)会返回相应数据的Nullable类型,而object会随缺失值的存在而改变返回类型
- 某些Series方法不能在string上使用,例如: Series.str.decode(),因为存储的是字符串而不是字节
- string类型在缺失值存储或运算时,类型会广播为pd.NA,而不是浮点型np.nan
其余全部内容在当前版本下完全一致,但迎合Pandas的发展模式,我们仍然全部用string来操作字符串
String类型的转换
如果将一个其他类型的容器直接转换string类型可能会出错:
#pd.Series([1,'1.']).astype('string') #报错
#pd.Series([1,2]).astype('string') #报错
#pd.Series([True,False]).astype('string') #报错
当下正确的方法是分两部转换,先转为str型object,在转为string类型:
pd.Series([1,'1.']).astype('str').astype('string')
pd.Series([1,2]).astype('str').astype('string')
pd.Series([True,False]).astype('str').astype('string')