2021年最有用的數(shù)據(jù)清洗 Python 庫!建議看一下!

大多數(shù)調(diào)查表明,數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師需要花費(fèi) 70-80% 的時(shí)間來清理和準(zhǔn)備數(shù)據(jù)以進(jìn)行分析。
對(duì)于許多數(shù)據(jù)工作者來說,數(shù)據(jù)的清理和準(zhǔn)備也往往是他們工作中最不喜歡的部分,因此他們將另外 20-30% 的時(shí)間花在抱怨上,這雖然是一個(gè)玩笑,但是卻很好的反應(yīng)了數(shù)據(jù)清洗在數(shù)據(jù)分析工作當(dāng)中的特殊地位
在平時(shí)的工作生活中,數(shù)據(jù)總是會(huì)出現(xiàn)某些不一致、缺失的輸入、不相關(guān)的信息、重復(fù)的信息或徹頭徹尾的錯(cuò)誤等等情況。尤其是當(dāng)數(shù)據(jù)來自不同來源時(shí),每個(gè)來源都會(huì)有自己的一套怪癖、挑戰(zhàn)和不規(guī)則之處。凌亂的數(shù)據(jù)是沒有用處的,有時(shí)候甚至?xí)鸬椒捶较蜃饔茫@就是數(shù)據(jù)科學(xué)家花費(fèi)大部分時(shí)間來理解所有數(shù)據(jù)的原因
雖然清理和準(zhǔn)備數(shù)據(jù)既繁瑣又辛苦,但是我們的數(shù)據(jù)越干凈、越有條理,后面的一切工作都會(huì)變得更快、更輕松、更高效。
本文就來分享精選的 15 個(gè)最有用的 Python 數(shù)據(jù)清理庫,希望在數(shù)據(jù)分析的路上,大家都能越快輕松!
NumPy Pandas Matplotlib Datacleaner Dora Seaborn Arrow Scrubadub Tabulate Missingno Modin Ftfy SciPy Dabl Imblearn
NumPy
NumPy 是一個(gè)快速且易于使用的開源科學(xué)計(jì)算 Python 庫,它也是數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)的基礎(chǔ)庫,因?yàn)?Pandas 和 Matplotlib 等許多最流行的 Python 庫都是建立在 NumPy 之上的
除了作為其他強(qiáng)大庫的基礎(chǔ)之外,NumPy 還具有許多特性,使其成為 Python 數(shù)據(jù)分析不可或缺的一部分。由于其速度和多功能性,NumPy 的矢量化、索引和廣播概念代表了數(shù)組計(jì)算的事實(shí)標(biāo)準(zhǔn),NumPy 在處理多維數(shù)組時(shí)尤為出色。它還提供了一個(gè)全面的數(shù)值計(jì)算工具箱,如線性代數(shù)例程、傅立葉變換等
NumPy 可以為很多人做很多事情,其高級(jí)語法允許任何背景或經(jīng)驗(yàn)水平的程序員使用其強(qiáng)大的數(shù)據(jù)處理能力。例如,基于 NumPy 生成了有史以來第一張黑洞圖像,它還證實(shí)了引力波的存在,目前正在各種科學(xué)研究中都起著重要的作用
就是這樣一個(gè)涵蓋從運(yùn)動(dòng)到太空的所有內(nèi)容的程序也可以幫助我們管理和清理數(shù)據(jù),不得不說,Numpy 庫太神奇了
Pandas
Pandas 是由 NumPy 提供支持的庫,它是 Python 中使用最廣泛的 數(shù)據(jù)分析和操作庫
Pandas 快速且易于使用,其語法非常人性化,再加上其在操作 DataFrame 方面擁有令人難以置信的靈活性,使其成為分析、操作和清理數(shù)據(jù)不可或缺的工具
這個(gè)強(qiáng)大的 Python 庫不僅可以處理數(shù)字?jǐn)?shù)據(jù),還可以處理文本數(shù)據(jù)和日期數(shù)據(jù)。它允許我們加入、合并、連接或復(fù)制 DataFrame,并使用 drop() 函數(shù)輕松添加或刪除列或行
簡而言之,Pandas 結(jié)合了速度、易用性和靈活的功能,創(chuàng)建了一個(gè)非常強(qiáng)大的工具,使數(shù)據(jù)操作和分析變得快速而簡單
Matplotlib
了解我們的數(shù)據(jù)是清理過程的關(guān)鍵部分,清理數(shù)據(jù)的目的就是使其易于理解。但是在我們擁有漂亮干凈的數(shù)據(jù)之前,需要先了解凌亂數(shù)據(jù)中的問題,例如它們的種類和范圍,然后才能對(duì)其進(jìn)行有效的清理,這個(gè)操作的很大一部分取決于數(shù)據(jù)的準(zhǔn)確和直觀呈現(xiàn)的程度
Matplotlib 以其令人印象深刻的數(shù)據(jù)可視化而聞名,這使其成為數(shù)據(jù)清理工作中的寶貴工具,它是使用 Python 生成圖形、圖表和其他 2D 數(shù)據(jù)可視化的首選工具庫
我們可以在數(shù)據(jù)清理中使用 Matplotlib,通過生成分布圖來幫助我們了解數(shù)據(jù)的不足之處
Datacleaner
Datacleaner 是一個(gè)基于 Pandas DataFrame 的第三方庫,雖然 Datacleaner 出現(xiàn)的時(shí)間比較短并且不如 Pandas 流行,但是,Datacleaner 有一種獨(dú)特的方法,它結(jié)合了一些典型的數(shù)據(jù)清理功能并使其自動(dòng)化,這為我們節(jié)省了寶貴的時(shí)間和精力
使用 Datacleaner,我們可以在逐列的基礎(chǔ)上使用眾數(shù)或中位數(shù)輕松替換缺失值,對(duì)分類變量進(jìn)行編碼,并刪除具有缺失值的行
Dora
Dora 庫使用 Scikit-learn、Pandas 和 Matplotlib 進(jìn)行探索性分析,或者更具體地說,用于自動(dòng)化探索性分析中最不受歡迎的方面。除了處理特征選擇、提取和可視化之外,Dora 還優(yōu)化和自動(dòng)化數(shù)據(jù)清理
Dora 將通過許多數(shù)據(jù)清理功能為我們節(jié)省寶貴的時(shí)間和精力,例如輸入缺失值、讀取缺失值和縮放不佳的值的數(shù)據(jù)以及輸入變量的縮放值等等
此外,Dora 提供了一個(gè)簡單的界面,用于在我們轉(zhuǎn)換數(shù)據(jù)時(shí)保存數(shù)據(jù)快照,并以其獨(dú)特的數(shù)據(jù)版本控制功能與其他 Python 包區(qū)別開來
Seaborn
在前面,我們討論了可視化數(shù)據(jù)以揭示數(shù)據(jù)缺陷和不一致的重要性。在解決數(shù)據(jù)中的問題之前,我們需要知道它們是什么以及它們?cè)谀睦?,此時(shí)使用數(shù)據(jù)可視化就是最好的方案。雖然對(duì)于許多 Python 用戶來說,Matplotlib 是數(shù)據(jù)可視化的首選庫,然而一些用戶發(fā)現(xiàn) Matplotlib 在自定義數(shù)據(jù)可視化選項(xiàng)方面的局限性也非常大,于是我們有了Seaborn。
Seaborn 是一個(gè)數(shù)據(jù)可視化包,它建立在 Matplotlib 之上,可生成有吸引力且信息豐富的統(tǒng)計(jì)圖形,同時(shí)提供可定制的數(shù)據(jù)可視化
它也改進(jìn)了在 Pandas 的 DataFrames 中的運(yùn)行效率,可以更加緊密的與 Pandas 相結(jié)合,使探索性分析和數(shù)據(jù)清理更加愉快
Arrow
提高數(shù)據(jù)質(zhì)量的一個(gè)重要方面是在整個(gè) DataFrame 中創(chuàng)建統(tǒng)一性和一致性,對(duì)于試圖在處理日期和時(shí)間時(shí)創(chuàng)建統(tǒng)一性的 Python 開發(fā)人員來說,這個(gè)過程可能往往會(huì)比較困難。經(jīng)常在花費(fèi)了無數(shù)個(gè)小時(shí)和無數(shù)行代碼之后,日期和時(shí)間格式化的特殊困難仍然存在
Arrow 是一個(gè) Python 庫,專門用于處理這些困難并創(chuàng)建數(shù)據(jù)一致性。它的省時(shí)功能包括時(shí)區(qū)轉(zhuǎn)換;自動(dòng)字符串格式化和解析;支持 pytz、dateutil 對(duì)象、ZoneInfo tzinfo;生成范圍、下限、時(shí)間跨度和上限,時(shí)間范圍從微秒到數(shù)年不等
Arrow 可以識(shí)別時(shí)區(qū)(與標(biāo)準(zhǔn) Python 庫不同),并且默認(rèn)為 UTC。它通過更少的代碼和更少的輸入授予用戶更熟練的日期和時(shí)間操作命令。這意味著我們可以為我們的數(shù)據(jù)帶來更大的一致性,同時(shí)減少花在時(shí)鐘上的時(shí)間
Scrubadub
Scrubadub 是金融和醫(yī)療數(shù)據(jù)科學(xué)家的最愛,它是一個(gè) Python 庫,專門用于從自由文本中消除個(gè)人身份信息 (PII)
這個(gè)簡單、免費(fèi)和開源的軟件包可以輕松地從我們的數(shù)據(jù)中刪除敏感的個(gè)人信息,從而保護(hù)當(dāng)事人的隱私和安全
Scrubadub 目前允許用戶清除以下信息的數(shù)據(jù):
電子郵件地址 網(wǎng)址 姓名 Skype 用戶名 電話號(hào)碼 密碼/用戶名組合 社會(huì)安全號(hào)碼
Tabulate
只需調(diào)用一個(gè)函數(shù),Tabulate 就可以使用我們的數(shù)據(jù)創(chuàng)建小型且有吸引力的表格,由于具有數(shù)字格式、標(biāo)題和小數(shù)列對(duì)齊等許多功能,這些表格具有很高的可讀性
這個(gè)開源庫還允許用戶使用其他工具和語言處理表格數(shù)據(jù),讓用戶能夠以其他擅長的格式(如 HTML、PHP 或 Markdown Extra)輸出數(shù)據(jù)
Missingno
處理缺失值是數(shù)據(jù)清理的主要方面之一,Missingno 庫應(yīng)運(yùn)而生。它逐列識(shí)別和可視化 DataFrame 中的缺失值,以便用戶可以看到他們數(shù)據(jù)所處的狀態(tài)
將問題可視化是解決問題的第一步,而 Missingno 是一個(gè)簡單易用的庫,可以很好的完成這項(xiàng)工作
Modin
正如我們上面提到的,Pandas 已經(jīng)是一個(gè)快速的庫了,但 Modin 將 Pandas 帶到一個(gè)全新的水平。Modin 通過分發(fā)數(shù)據(jù)和計(jì)算速度來提高 Pandas 的性能
Modin 用戶將受益于與 Pandas 語法的完美契合和不顯眼的集成,可以將 Pandas 的速度提高多達(dá) 400%!
Ftfy
Ftfy 的誕生是為了一個(gè)簡單的任務(wù):將糟糕的 Unicode 和無用的字符轉(zhuǎn)換為相關(guān)且可讀的文本數(shù)據(jù)?
比如:
a€?quotea€\x9d?=?"quote"
uì??=?ü
lt;3?=?<3
無需花費(fèi)大量時(shí)間處理文本數(shù)據(jù),使用 Ftfy 就可以快速理解無意義的內(nèi)容
SciPy
SciPy 不僅僅是一個(gè)庫,它還是一個(gè)完整的數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)
此外,SciPy 還提供了許多專用工具,其中之一是 Scikit-learn,完美可以利用其“Preprocessing”包進(jìn)行數(shù)據(jù)清理和數(shù)據(jù)集標(biāo)準(zhǔn)化
Dabl
scikit-learn 項(xiàng)目的一名核心工程師開發(fā)了 Dabl 作為數(shù)據(jù)分析庫,以簡化數(shù)據(jù)探索和預(yù)處理的過程
Dabl 有一個(gè)完整的流程來檢測(cè)數(shù)據(jù)集中的某些數(shù)據(jù)類型和質(zhì)量問題,并自動(dòng)應(yīng)用適當(dāng)?shù)念A(yù)處理程序
它可以處理缺失值,將分類變量轉(zhuǎn)換為數(shù)值,它甚至具有內(nèi)置的可視化選項(xiàng)以促進(jìn)快速數(shù)據(jù)探索
Imblearn
我們要介紹的最后一個(gè)庫是 Imbalanced-learn(縮寫為 Imblearn),它依賴于 Scikit-learn 并為面臨分類和不平衡類的 Python 用戶提供工具支持
使用稱為“undersampling”的預(yù)處理技術(shù),Imblearn 將梳理完美的數(shù)據(jù)并刪除數(shù)據(jù)集中的缺失、不一致或其他不規(guī)則數(shù)據(jù)
總結(jié)
我們的數(shù)據(jù)分析模型取決于我們輸入的數(shù)據(jù),并且我們的數(shù)據(jù)越干凈,處理、分析和可視化就越簡單,善于利用工具,會(huì)使我們的工作更加輕松愉快
雖然上面總結(jié)的工具不可能包含所有的數(shù)據(jù)清洗工具,但是我們只要選擇適合我們的就可以了,希望今天的分享能夠幫助到你~
好了,今天分享就到這里,如果大家覺得滿意請(qǐng)務(wù)必點(diǎn)個(gè)贊 + 在看 支持下
推薦閱讀:
入門:?最全的零基礎(chǔ)學(xué)Python的問題? |?零基礎(chǔ)學(xué)了8個(gè)月的Python??|?實(shí)戰(zhàn)項(xiàng)目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評(píng),電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個(gè)海量小姐姐素描圖?|碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會(huì)做詩的機(jī)器人?|?給圖片上色?|?預(yù)測(cè)收入?|?碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水??!?|?一鍵把html網(wǎng)頁保存為pdf!|??再見PDF提取收費(fèi)!?|?用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r(jià)機(jī)票提示器!?|60行代碼做了一個(gè)語音壁紙切換器天天看小姐姐!|
年度爆款文案
點(diǎn)閱讀原文,看200個(gè)Python案例!

