pandas處理文本數(shù)據(jù)實(shí)例:芝加哥食品檢查、公司客戶地址
芝加哥食品檢查(注意,有15萬行數(shù)據(jù)):chicago_food_inspections.csv
公司客戶地址:customers.csv
鏈接:https://pan.baidu.com/s/1zNYRXzBSvwUxKABQS6DOBA?pwd=1234
1. 字符串空格
輸出后發(fā)現(xiàn),沒有右對(duì)齊,因此是存在前后空格的非標(biāo)準(zhǔn)字符串:

刪除前后空格.strip():【僅左空格是.lstrip(),僅右空格是.rstrip()】
針對(duì)每列操作,使用for循環(huán):
2. 字母大小寫
全部小寫:
全部大寫:
字符串首字母大寫:
每個(gè)單詞首字母大寫:
3. 字符串切片
提取每一行的風(fēng)險(xiǎn)級(jí)別High、Medium、Low。
3.1 首先檢查數(shù)據(jù),是否都符合要求。
查看唯一值:.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()
現(xiàn)在符合要求:

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

不規(guī)則長(zhǎng)度的風(fēng)險(xiǎn)級(jí)別切片:
成功實(shí)現(xiàn):

4. 文本查找
字符串包含"pizza":contains()
字符串開頭/結(jié)尾包含"tacos":startwith() /?endwith()
5. 字符串拆分
對(duì)于customers.csv,姓名拆分為列表:

第3個(gè)名字被拆了兩次。限制最大拆分?jǐn)?shù):

列表中內(nèi)容提?。篻et()【可以是0、1、-1】
生成DataFrame而非Series的列表:expand=True
添加到之前的DataFrame中:
刪除本來的Name列:
6. 拓展
可以用同樣的方法處理Address。
在.replace()中,可以用regex = True參數(shù)打開正則表達(dá)式。