pandas处理文本数据实例:芝加哥食品检查、公司客户地址
芝加哥食品检查(注意,有15万行数据):chicago_food_inspections.csv
公司客户地址:customers.csv
链接:https://pan.baidu.com/s/1zNYRXzBSvwUxKABQS6DOBA?pwd=1234
1. 字符串空格
输出后发现,没有右对齐,因此是存在前后空格的非标准字符串:

删除前后空格.strip():【仅左空格是.lstrip(),仅右空格是.rstrip()】
针对每列操作,使用for循环:
2. 字母大小写
全部小写:
全部大写:
字符串首字母大写:
每个单词首字母大写:
3. 字符串切片
提取每一行的风险级别High、Medium、Low。
3.1 首先检查数据,是否都符合要求。
查看唯一值:.unique()
可见除了'Risk 1 (High)'、'Risk 2 (Medium)'、'Risk 3 (Low)'还有'All'和nan:

解决方案:将nan行删去、将'All'改为'Risk 4 (Extreme)'
将nan行删去:.dropna(subset = ["Risk"])
将'All'改为'Risk 4 (Extreme)':.replace()
现在符合要求:

3.2 切片
按字符串顺序:.slice()
或者直接列表切片:
包括5,不包括6,提取的就是Risk后面的数字:

不规则长度的风险级别切片:
成功实现:

4. 文本查找
字符串包含"pizza":contains()
字符串开头/结尾包含"tacos":startwith() / endwith()
5. 字符串拆分
对于customers.csv,姓名拆分为列表:

第3个名字被拆了两次。限制最大拆分数:

列表中内容提取:get()【可以是0、1、-1】
生成DataFrame而非Series的列表:expand=True
添加到之前的DataFrame中:
删除本来的Name列:
6. 拓展
可以用同样的方法处理Address。
在.replace()中,可以用regex = True参数打开正则表达式。