目錄
1個資料集,16個Pandas函數" >1個資料集,16個Pandas函數
① cat函数:用于字符串的拼接" >① cat函数:用于字符串的拼接
② contains:判断某个字符串是否包含给定字符" >② contains:判断某个字符串是否包含给定字符
③ startswith/endswith:判断某个字符串是否以…开头/结尾" >③ startswith/endswith:判断某个字符串是否以…开头/结尾
④ count:计算给定字符在字符串中出现的次数" >④ count:计算给定字符在字符串中出现的次数
⑤ get:获取指定位置的字符串" >⑤ get:获取指定位置的字符串
⑥ len:计算字符串长度" >⑥ len:计算字符串长度
⑦ upper/lower:英文大小写转换" >⑦ upper/lower:英文大小写转换
⑧ pad+side参数/center:在字符串的左边、右边或左右两边添加给定字符" >⑧ pad+side参数/center:在字符串的左边、右边或左右两边添加给定字符
⑨ repeat:重复字符串几次" >⑨ repeat:重复字符串几次
⑩ slice_replace:使用给定的字符串,替换指定的位置的字符" >⑩ slice_replace:使用给定的字符串,替换指定的位置的字符
⑪ replace:将指定位置的字符,替换为给定的字符串" >⑪ replace:将指定位置的字符,替换为给定的字符串
⑫ replace:将指定位置的字符,替换为给定的字符串(接受正则表达式)" >⑫ replace:将指定位置的字符,替换为给定的字符串(接受正则表达式)
⑬ split方法+expand参数:搭配join方法功能很强大" >⑬ split方法+expand参数:搭配join方法功能很强大
⑭ strip/rstrip/lstrip:去除空白符、换行符" >⑭ strip/rstrip/lstrip:去除空白符、换行符
⑮ findall:利用正则表达式,去字符串中匹配,返回查找结果的列表" >⑮ findall:利用正则表达式,去字符串中匹配,返回查找结果的列表
⑯ extract/extractall:接受正则表达式,抽取匹配的字符串(一定要加上括号)" >⑯ extract/extractall:接受正则表达式,抽取匹配的字符串(一定要加上括号)
首頁 後端開發 Python教學 詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!

詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!

Aug 10, 2023 pm 04:22 PM
python pandas


###

本文介紹

#你有沒有這樣一種感覺,為什麼到自己手上的數據,總是亂七八糟?
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
身為資料分析師來說,資料清洗是不可或缺的環節。有時候因為資料太亂,往往需要花我們很多時間去處理它。 因此掌握更多的資料清洗方法,會讓你的能力調高100倍。
本文基於此,講述Pandas中超級好用的str向量化字串函數,學了之後,瞬間感覺自己的資料清洗能力提高了。
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!

1個資料集,16個Pandas函數

資料集是黃同學精心為大家編造,只為了幫助大家學習知識。資料集如下:
import pandas as pd

df ={'姓名':[' 黄同学','黄至尊','黄老邪 ','陈大美','孙尚香'],
     '英文名':['Huang tong_xue','huang zhi_zun','Huang Lao_xie','Chen Da_mei','sun shang_xiang'],
     '性别':['男','women','men','女','男'],
     '身份证':['463895200003128433','429475199912122345','420934199110102311','431085200005230122','420953199509082345'],
     '身高':['mid:175_good','low:165_bad','low:159_bad','high:180_verygood','low:172_bad'],
     '家庭住址':['湖北广水','河南信阳','广西桂林','湖北孝感','广东广州'],
     '电话号码':['13434813546','19748672895','16728613064','14561586431','19384683910'],
     '收入':['1.1万','8.5千','0.9万','6.5千','2.0万']}
df = pd.DataFrame(df)
df
結果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
觀察上述數據,數據集是亂的。接下來,我們就用16個Pandas來對上述數據,進行數據清洗。
① cat函数:用于字符串的拼接
df["姓名"].str.cat(df["家庭住址"],sep='-'*3)
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
② contains:判断某个字符串是否包含给定字符
df["家庭住址"].str.contains("广")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
③ startswith/endswith:判断某个字符串是否以…开头/结尾
# 第一个行的“ 黄伟”是以空格开头的
df["姓名"].str.startswith("黄") 
df["英文名"].str.endswith("e")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
④ count:计算给定字符在字符串中出现的次数
df["电话号码"].str.count("3")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑤ get:获取指定位置的字符串
df["姓名"].str.get(-1)
df["身高"].str.split(":")
df["身高"].str.split(":").str.get(0)
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑥ len:计算字符串长度
df["性别"].str.len()
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑦ upper/lower:英文大小写转换
df["英文名"].str.upper()
df["英文名"].str.lower()
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑧ pad+side参数/center:在字符串的左边、右边或左右两边添加给定字符
df["家庭住址"].str.pad(10,fillchar="*")      # 相当于ljust()
df["家庭住址"].str.pad(10,side="right",fillchar="*")    # 相当于rjust()
df["家庭住址"].str.center(10,fillchar="*")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑨ repeat:重复字符串几次
df["性别"].str.repeat(3)
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑩ slice_replace:使用给定的字符串,替换指定的位置的字符
df["电话号码"].str.slice_replace(4,8,"*"*4)
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑪ replace:将指定位置的字符,替换为给定的字符串
df["身高"].str.replace(":","-")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑫ replace:将指定位置的字符,替换为给定的字符串(接受正则表达式)
  • replace中传入正则表达式,才叫好用;
  • 先不要管下面这个案例有没有用,你只需要知道,使用正则做数据清洗多好用;
df["收入"].str.replace("\d+\.\d+","正则")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑬ split方法+expand参数:搭配join方法功能很强大
# 普通用法
df["身高"].str.split(":")
# split方法,搭配expand参数
df[["身高描述","final身高"]] = df["身高"].str.split(":",expand=True)
df
# split方法搭配join方法
df["身高"].str.split(":").str.join("?"*5)
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑭ strip/rstrip/lstrip:去除空白符、换行符
df["姓名"].str.len()
df["姓名"] = df["姓名"].str.strip()
df["姓名"].str.len()
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑮ findall:利用正则表达式,去字符串中匹配,返回查找结果的列表
  • findall使用正则表达式,做数据清洗,真的很香!
df["身高"]
df["身高"].str.findall("[a-zA-Z]+")
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!
⑯ extract/extractall:接受正则表达式,抽取匹配的字符串(一定要加上括号)
df["身高"].str.extract("([a-zA-Z]+)")
# extractall提取得到复合索引
df["身高"].str.extractall("([a-zA-Z]+)")
# extract搭配expand参数
df["身高"].str.extract("([a-zA-Z]+).*?([a-zA-Z]+)",expand=True)
结果如下:
詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!


以上是詳解16個Pandas函數,讓你的 「資料清洗」 能力提高100倍!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1596
276
如何在Sublime文本中運行Python代碼? 如何在Sublime文本中運行Python代碼? Aug 16, 2025 am 04:58 AM

確保已安裝Python並將其添加到系統PATH,通過終端運行python--version或python3--version驗證;2.將Python文件保存為.py擴展名,如hello.py;3.在SublimeText中創建自定義構建系統,Windows用戶使用{"cmd":["python","-u","$file"]},macOS/Linux用戶使用{"cmd":["python3

如何在VScode中調試Python腳本 如何在VScode中調試Python腳本 Aug 16, 2025 am 02:53 AM

要調試Python腳本,需先安裝Python擴展並配置解釋器,然後創建launch.json文件設置調試配置,接著在代碼中設置斷點並按F5啟動調試,腳本將在斷點處暫停,允許檢查變量和單步執行,最終通過查看控制台輸出、添加日誌或調整參數等方式排查問題,確保環境正確後調試過程簡單高效。

Python中的類方法是什麼 Python中的類方法是什麼 Aug 21, 2025 am 04:12 AM

ClassmethodsinPythonareboundtotheclassandnottoinstances,allowingthemtobecalledwithoutcreatinganobject.1.Theyaredefinedusingthe@classmethoddecoratorandtakeclsasthefirstparameter,referringtotheclassitself.2.Theycanaccessclassvariablesandarecommonlyused

python asyncio隊列示例 python asyncio隊列示例 Aug 21, 2025 am 02:13 AM

asyncio.Queue是用於異步任務間安全通信的隊列工具,1.生產者通過awaitqueue.put(item)添加數據,消費者用awaitqueue.get()獲取數據;2.每處理完一項需調用queue.task_done(),以便queue.join()等待所有任務完成;3.使用None作為結束信號通知消費者停止;4.多個消費者時,需發送多個結束信號或在取消任務前確保所有任務已處理完畢;5.隊列支持設置maxsize限制容量,put和get操作自動掛起不阻塞事件循環,程序最終通過canc

收益率關鍵字如何在Python中起作用 收益率關鍵字如何在Python中起作用 Aug 15, 2025 am 08:23 AM

yield關鍵字用於定義生成器函數,使其能暫停執行並逐個返回值,之後從暫停處恢復;生成器函數返回生成器對象,具有惰性求值特性,可節省內存,適用於處理大文件、流數據和無限序列等場景,且生成器是迭代器,支持next()和for循環,但無法倒回,必須重新創建才能再次迭代。

如何在Sublime文本中創建一個Python項目? 如何在Sublime文本中創建一個Python項目? Aug 16, 2025 am 08:53 AM

InstallSublimeTextandPython,thenconfigureabuildsystembycreatingaPython3.sublime-buildfilewiththeappropriatecmdandselectorsettingstoenablerunningPythonscriptsviaCtrl B.2.OrganizeyourprojectbycreatingadedicatedfolderwithPythonfilesandsupportingdocument

如何運行Python腳本並在崇高文本中查看單獨面板中的輸出? 如何運行Python腳本並在崇高文本中查看單獨面板中的輸出? Aug 17, 2025 am 06:06 AM

toseepythonOutputiNaseparatePanelInSubliMeText,Usethebuilt-InbuildSystembysavingYourfileWitha.pyExtensionandensionAndPressingCtrl b(orcmd b)

如何避免使用Python的網絡刮擦時被阻止? 如何避免使用Python的網絡刮擦時被阻止? Aug 16, 2025 am 09:54 AM

ToavoidgettingblockedwhilewebscrapingwithPython,userealisticrequestheaders,addrandomizeddelays,rotateIPaddresseswithproxies,maintainsessions,respectrobots.txt,anduseheadlessbrowserswhennecessary,ensuringethicalandstealthybehaviortomimicrealusersandpr

See all articles