Pandas 簡(jiǎn)介

2022-07-12 14:09 更新

Pandas 是一個(gè)開(kāi)源的第三方 Python 庫(kù),從 Numpy 和 Matplotlib 的基礎(chǔ)上構(gòu)建而來(lái),享有數(shù)據(jù)分析“三劍客之一”的盛名(NumPy、Matplotlib、Pandas)。Pandas 已經(jīng)成為 Python 數(shù)據(jù)分析的必備高級(jí)工具,它的目標(biāo)是成為強(qiáng)大、靈活、可以支持任何編程語(yǔ)言的數(shù)據(jù)分析工具。

pandas教程
圖1:Pandas Logo

Pandas 這個(gè)名字來(lái)源于面板數(shù)據(jù)(Panel Data)與數(shù)據(jù)分析(data analysis)這兩個(gè)名詞的組合。在經(jīng)濟(jì)學(xué)中,Panel Data 是一個(gè)關(guān)于多維數(shù)據(jù)集的術(shù)語(yǔ)。Pandas 最初被應(yīng)用于金融量化交易領(lǐng)域,現(xiàn)在它的應(yīng)用領(lǐng)域更加廣泛,涵蓋了農(nóng)業(yè)、工業(yè)、交通等許多行業(yè)。


Pandas 最初由 Wes McKinney(韋斯·麥金尼)于 2008 年開(kāi)發(fā),并于 2009 年實(shí)現(xiàn)開(kāi)源。目前,Pandas 由 PyData 團(tuán)隊(duì)進(jìn)行日常的開(kāi)發(fā)和維護(hù)工作。在 2020 年 12 月,PyData 團(tuán)隊(duì)公布了最新的 Pandas 1.20 版本 。

在 Pandas 沒(méi)有出現(xiàn)之前,Python 在數(shù)據(jù)分析任務(wù)中主要承擔(dān)著數(shù)據(jù)采集和數(shù)據(jù)預(yù)處理的工作,但是這對(duì)數(shù)據(jù)分析的支持十分有限,并不能突出 Python 簡(jiǎn)單、易上手的特點(diǎn)。Pandas 的出現(xiàn)使得 Python 做數(shù)據(jù)分析的能力得到了大幅度提升,它主要實(shí)現(xiàn)了數(shù)據(jù)分析的五個(gè)重要環(huán)節(jié):

  • 加載數(shù)據(jù)
  • 整理數(shù)據(jù)
  • 操作數(shù)據(jù)
  • 構(gòu)建數(shù)據(jù)模型
  • 分析數(shù)據(jù)

Pandas主要特點(diǎn)

Pandas 主要包括以下幾個(gè)特點(diǎn):

  • 它提供了一個(gè)簡(jiǎn)單、高效、帶有默認(rèn)標(biāo)簽(也可以自定義標(biāo)簽)的 DataFrame 對(duì)象。
  • 能夠快速得從不同格式的文件中加載數(shù)據(jù)(比如 Excel、CSV 、SQL文件),然后將其轉(zhuǎn)換為可處理的對(duì)象;
  • 能夠按數(shù)據(jù)的行、列標(biāo)簽進(jìn)行分組,并對(duì)分組后的對(duì)象執(zhí)行聚合和轉(zhuǎn)換操作;
  • 能夠很方便地實(shí)現(xiàn)數(shù)據(jù)歸一化操作和缺失值處理;
  • 能夠很方便地對(duì) DataFrame 的數(shù)據(jù)列進(jìn)行增加、修改或者刪除的操作;
  • 能夠處理不同格式的數(shù)據(jù)集,比如矩陣數(shù)據(jù)、異構(gòu)數(shù)據(jù)表、時(shí)間序列等;
  • 提供了多種處理數(shù)據(jù)集的方式,比如構(gòu)建子集、切片、過(guò)濾、分組以及重新排序等。

上述知識(shí)點(diǎn)將在后續(xù)學(xué)習(xí)中為大家一一講解。

Pandas主要優(yōu)勢(shì)

與其它語(yǔ)言的數(shù)據(jù)分析包相比,Pandas 具有以下優(yōu)勢(shì):

  • Pandas 的 DataFrame 和 Series 構(gòu)建了適用于數(shù)據(jù)分析的存儲(chǔ)結(jié)構(gòu);
  • Pandas 簡(jiǎn)潔的 API 能夠讓你專注于代碼的核心層面;
  • Pandas 實(shí)現(xiàn)了與其他庫(kù)的集成,比如 Scipy、scikit-learn 和 Matplotlib;
  • Pandas 官方網(wǎng)站(點(diǎn)擊訪問(wèn))提供了完善資料支持,及其良好的社區(qū)環(huán)境。

Pandas內(nèi)置數(shù)據(jù)結(jié)構(gòu)

我們知道,構(gòu)建和處理二維、多維數(shù)組是一項(xiàng)繁瑣的任務(wù)。Pandas 為解決這一問(wèn)題, 在 ndarray 數(shù)組(NumPy 中的數(shù)組)的基礎(chǔ)上構(gòu)建出了兩種不同的數(shù)據(jù)結(jié)構(gòu),分別是 Series(一維數(shù)據(jù)結(jié)構(gòu))DataFrame(二維數(shù)據(jù)結(jié)構(gòu)):

  • Series 是帶標(biāo)簽的一維數(shù)組,這里的標(biāo)簽可以理解為索引,但這個(gè)索引并不局限于整數(shù),它也可以是字符類型,比如 a、b、c 等;
  • DataFrame 是一種表格型數(shù)據(jù)結(jié)構(gòu),它既有行標(biāo)簽,又有列標(biāo)簽。

下面對(duì)上述數(shù)據(jù)結(jié)構(gòu)做簡(jiǎn)單地的說(shuō)明:

數(shù)據(jù)結(jié)構(gòu) 維度 說(shuō)明
Series 1 該結(jié)構(gòu)能夠存儲(chǔ)各種數(shù)據(jù)類型,比如字符數(shù)、整數(shù)、浮點(diǎn)數(shù)、Python 對(duì)象等,Series 用 name 和 index 屬性來(lái)描述
數(shù)據(jù)值。Series 是一維數(shù)據(jù)結(jié)構(gòu),因此其維數(shù)不可以改變。 
DataFrame 2 DataFrame 是一種二維表格型數(shù)據(jù)的結(jié)構(gòu),既有行索引,也有列索引。行索引是 index,列索引是 columns。
在創(chuàng)建該結(jié)構(gòu)時(shí),可以指定相應(yīng)的索引值。

由于上述數(shù)據(jù)結(jié)構(gòu)的存在,使得處理多維數(shù)組數(shù)任務(wù)變的簡(jiǎn)單。在《Pandas Series入門(mén)教程》和《Pandas DataFrame入門(mén)教程(圖解)》兩節(jié)中,我們會(huì)對(duì)上述數(shù)據(jù)結(jié)構(gòu)做詳細(xì)講解。

注意,在 Pandas 0.25 版本后,Pamdas 廢棄了 Panel 數(shù)據(jù)結(jié)構(gòu),如果感興趣可閱讀《Pandas Panel三維數(shù)據(jù)結(jié)構(gòu)》一節(jié)。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)