Pandas 簡(jiǎn)介

大家好,歡迎閱讀這門(mén) Pandas教程。
如果你是一個(gè)數(shù)據(jù)開(kāi)發(fā)人員,我想你應(yīng)該對(duì) Pandas 并不陌生。如果你從沒(méi)有聽(tīng)說(shuō)過(guò)也沒(méi)有關(guān)系,這節(jié)課我們將對(duì) Pandas 做一個(gè)系統(tǒng)的介紹,看完這節(jié)課你應(yīng)該對(duì) Pandas 是什么,能用來(lái)做什么有一個(gè)大致的了解。
好了,話不多說(shuō),下面就讓我們一起來(lái)走進(jìn) Pandas 的世界。
1. Pandas 是什么?
Pandas 是由 Wes McKinny 于 2008 年設(shè)計(jì)和開(kāi)發(fā),并于 2009 年底開(kāi)源出來(lái)。最初的出現(xiàn)是為了彌補(bǔ)Python 在科學(xué)計(jì)算上的速度慢和資源消耗大的缺點(diǎn),隨著不斷的發(fā)展,Pandas 庫(kù)越來(lái)越成熟和穩(wěn)定,已經(jīng)成為了 Python 在科學(xué)計(jì)算中的重要模塊之一,廣泛的應(yīng)用于數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域。隨著大數(shù)據(jù)、人工智能領(lǐng)域發(fā)展的突飛猛進(jìn),Pandas 的出場(chǎng)頻率越來(lái)越高,對(duì)于數(shù)據(jù)科學(xué)問(wèn)題的處理越來(lái)越成熟、穩(wěn)定和高效。
作為 Python 語(yǔ)言的一個(gè)第三方庫(kù),Pandas 在程序中可以很方便的進(jìn)行引用。但是不得不說(shuō)的是。Pandas 是在 Python 的另一個(gè)科學(xué)計(jì)算庫(kù) Numpy 的基礎(chǔ)上進(jìn)行開(kāi)發(fā)的,因此 Pandas 采用了大量的 Numpy 編碼風(fēng)格。
但它在性能上要優(yōu)于 Numpy,Numpy 比較適合處理統(tǒng)一的數(shù)值數(shù)組數(shù)據(jù),而 Pandas 主要提供了兩種數(shù)據(jù)結(jié)構(gòu):一維數(shù)組(Series)和二維數(shù)組(DataFrame),可以說(shuō)是專門(mén)用來(lái)處理表格和混雜數(shù)據(jù)的工具。
Tips:想要學(xué)習(xí) Numpy 庫(kù)的同學(xué)可以閱讀這一門(mén)慕課教程。
2. Pandas 的特點(diǎn)
Pandas 有很多的特點(diǎn),它的創(chuàng)始人 Wes McKinney 在談到 Pandas 時(shí),總結(jié)了它的 9 個(gè)特性:
- 對(duì)表格類型數(shù)據(jù)的讀取和輸出速度非??欤?/li>
- 時(shí)間序列處理;
- 數(shù)據(jù)隊(duì)列;
- 處理缺失數(shù)據(jù);
- 分組運(yùn)算;
- 分級(jí)索引;
- 數(shù)據(jù)的合并和加入;
- 數(shù)據(jù)透視表;
- 數(shù)據(jù)歸納和分析。
當(dāng)然除了這九點(diǎn),Pandas 還有很多其他的優(yōu)點(diǎn),比如豐富的操作函數(shù)等,后面的課程中我們也會(huì)一一將 Pandas 的這些優(yōu)點(diǎn)展現(xiàn)給大家。
當(dāng)我們最開(kāi)始接觸 Pandas 時(shí),很明了的就能感覺(jué)它在數(shù)據(jù)處理速度上的優(yōu)勢(shì),以及它對(duì)于缺失數(shù)據(jù)處理的便捷性,還有它自身含有的數(shù)據(jù)歸納和分析函數(shù)。
正是這簡(jiǎn)單的操作,快速的運(yùn)算和自身帶有的強(qiáng)大的函數(shù)等功能特性,使得需要數(shù)據(jù)處理分析的用戶能很輕松的入手這個(gè)工具,并且?guī)?lái)的效果又是那么驚嘆,正是這些讓越來(lái)越多的需求選擇了入手它,并在使用中深入的了解它,最終掌握它、贊嘆它。
3. Pandas 的主要版本有哪些?教程使用什么版本?
Pandas 從 2009 年 12 月 26 日發(fā)布的 0.1 版本,發(fā)展到現(xiàn)在的 1.1.3 版本,中間各種版本經(jīng)歷了八十次左右的迭代,也正是它不斷的發(fā)展、迭代才有了現(xiàn)在的成熟和穩(wěn)定,Pandas 迭代中有很多重要的版本,這里我們要強(qiáng)調(diào)一下 Pandas 的幾個(gè)版本:
- V0.24.2:該版本修復(fù)了0.24.x系列中的一些小錯(cuò)誤,包括一些回歸修復(fù),錯(cuò)誤修復(fù)和性能改進(jìn);
- V0.25.0:這是 0.24.2 之后的另一個(gè)主要版本,大量的 API 更改,功能的改進(jìn)和大量錯(cuò)誤的修復(fù);
- V1.0.0:該版本新增了 StringDtype 數(shù)據(jù)類型,新增了表格導(dǎo)出為
markdown
的格式等新的內(nèi)容。
本教程采用的是 Pandas 的最新 1.1.3 版本,該版本支持較新的 Python 3.9 版本,修復(fù)了整數(shù)一元加減運(yùn)算中引起的類型錯(cuò)誤,修復(fù)了 DataFrame.sort_values() 操作時(shí)出現(xiàn)的 AttributeError 錯(cuò)誤等等,可以到官網(wǎng)查看 Pandas 1.1.3 的新特性。如果學(xué)習(xí)中,要使用其他版本的 Pandas ,要注意對(duì) Python 版本的支持,
4. Pandas 與其他同類型框架的對(duì)比
5.1 軟件 SAS
對(duì)于商業(yè)軟件 SAS 而言,雖然它擁有良好的 GUI 方便用戶操作,但是購(gòu)買(mǎi)價(jià)格比較昂貴,讓很多個(gè)體用戶望而止步。并且它的統(tǒng)計(jì)功能更新速度要不是很及時(shí),而對(duì)比之下,Pandas 不僅開(kāi)源免費(fèi),并且功能強(qiáng)大,成為了越來(lái)越多個(gè)體、科研機(jī)構(gòu)、或者企業(yè)的不二之選。
5.2 R 庫(kù)
R 庫(kù)作為 SAS 的開(kāi)源對(duì)應(yīng)物,Pandas 庫(kù)和 R 庫(kù)在數(shù)據(jù)處理和分析方面都比較專業(yè),Linux、Windows 均可使用,并且代碼可移植性都比較好,兩個(gè)庫(kù)之間存在一定的互補(bǔ)性,但處理速度方面 Pandas 庫(kù)要優(yōu)于 R 庫(kù),Pandas 是 Python 的第三方庫(kù),在數(shù)據(jù)結(jié)構(gòu)上也更為豐富。
5.3 SQL 工具
Pandas 庫(kù)和 SQL 工具相比較,如果是處理存在數(shù)據(jù)庫(kù)中的數(shù)據(jù),SQL 相對(duì)而言要方便一些,但目前大數(shù)據(jù)發(fā)展性,數(shù)據(jù)的來(lái)源大多數(shù)是通過(guò)網(wǎng)絡(luò)爬蟲(chóng)而來(lái),通過(guò)Python爬蟲(chóng)程序,生成的數(shù)據(jù)文件一般是txt、csv 或者 Excel,這時(shí)候 SQL 就不太好用了,Pandas 的優(yōu)勢(shì)也就提現(xiàn)出來(lái),它不論是數(shù)據(jù)的讀取和導(dǎo)出都很方便,而且 SQL 中有的數(shù)據(jù)處理功能,都可以由 Pandas 來(lái)實(shí)現(xiàn)。
通過(guò)和其他數(shù)據(jù)處理分析工具的對(duì)比,從成本投入、操作復(fù)雜度、處理能力等多方面考慮來(lái)看,Pandas 成為當(dāng)下最火的數(shù)據(jù)處理工具也是當(dāng)之無(wú)愧的。
6. 為什么要學(xué)習(xí) Pandas?可以給我?guī)?lái)什么好處?
目前來(lái)說(shuō),大數(shù)據(jù)產(chǎn)業(yè)已經(jīng)發(fā)展成為了一種新型服務(wù)產(chǎn)業(yè),已經(jīng)逐漸的延伸到科學(xué)和商業(yè)等領(lǐng)域,隨著大數(shù)據(jù)技術(shù)的發(fā)展和應(yīng)用產(chǎn)品的不斷迭代更新,大數(shù)據(jù)中所蘊(yùn)含的價(jià)值被不斷的開(kāi)采出來(lái),同時(shí),大數(shù)據(jù)分析行業(yè)的人才需求量也越來(lái)越大,行業(yè)中給出的待遇水平也相對(duì)較高。
而 Python 語(yǔ)言中的 Pandas 庫(kù)憑借著自身在大數(shù)據(jù)處理和分析中的簡(jiǎn)潔方便、穩(wěn)定、高效等多方面的優(yōu)勢(shì),在大數(shù)據(jù)領(lǐng)域中的位置越來(lái)越重要,也越來(lái)越被用戶所認(rèn)可,成為了大數(shù)據(jù)分析、人工智能等領(lǐng)域必不可少的選擇。
學(xué)習(xí) Pandas 有以下這些你無(wú)法拒絕的理由:
- 易于學(xué)習(xí)和使用;
- 社區(qū)資源多且豐富;
- Pandas庫(kù)成熟穩(wěn)定;
- Pandas庫(kù)功能豐富;
- 提高數(shù)據(jù)分析生成力;
- 就業(yè)前景廣;
- 薪資待遇高。
總之,不管你是一名上班族,還一名科學(xué)的研究者,Pandas 的學(xué)習(xí)對(duì)你來(lái)說(shuō)都是很有價(jià)值的,在工作和辦公中隨時(shí)都會(huì)接觸到大量的數(shù)據(jù),對(duì)于數(shù)據(jù)的處理和分析成為了必不可少的工作內(nèi)容之一,Pandas 能大大的提高工作的效率。通過(guò)接下來(lái)進(jìn)一步的接觸和學(xué)習(xí),Pandas 在數(shù)據(jù)處理和分析上的亮點(diǎn)一定會(huì)讓你贊嘆!
7. 本門(mén)課程是如何設(shè)計(jì)的?
本課程主要是 Pandas入門(mén)基礎(chǔ)知識(shí),從簡(jiǎn)單到復(fù)雜,帶領(lǐng)大家了解 Pandas 的數(shù)據(jù)結(jié)構(gòu),掌握 Pandas豐富的操作方法,進(jìn)一步的認(rèn)識(shí) Pandas 的一些高級(jí)功能,按照 Pandas 庫(kù)的數(shù)據(jù)結(jié)構(gòu)和功能模塊層層深入,一層一層的揭開(kāi) Pandas 的神秘面紗。
課程主要涉及 Pandas 開(kāi)發(fā)環(huán)境的安裝,Pandas 數(shù)據(jù)相關(guān)的操作,Pandas 的統(tǒng)計(jì)描述,以及 Pandas時(shí)間序列等知識(shí)點(diǎn),針對(duì)每一塊的知識(shí),按照功能模塊展開(kāi)到每一小節(jié),再具體到每一個(gè)操作方法上,會(huì)從概念描述、代碼演示和注意事項(xiàng)等多個(gè)角度講述知識(shí)點(diǎn),使學(xué)生能輕松的學(xué)習(xí) Pandas 庫(kù),熟練的掌握 Pandas 庫(kù)的基礎(chǔ)知識(shí)。
8. 學(xué)習(xí)這門(mén)課程需要有什么基礎(chǔ)?
- 學(xué)習(xí)這么課程首先要有python語(yǔ)言編程基礎(chǔ);
- 有一定的 Numpy 庫(kù)使用基礎(chǔ),會(huì)更加有利于 Pandas 庫(kù)的學(xué)習(xí)和使用。
Tips:想要學(xué)習(xí) Numpy 庫(kù)的同學(xué)可以閱讀這一門(mén)慕課教程。