Pandas 簡介

2022-07-12 14:09 更新

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

pandas教程
圖1:Pandas Logo

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


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

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

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

Pandas主要特點

Pandas 主要包括以下幾個特點:

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

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

Pandas主要優(yōu)勢

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

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

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

我們知道,構(gòu)建和處理二維、多維數(shù)組是一項繁瑣的任務(wù)。Pandas 為解決這一問題, 在 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)簽可以理解為索引,但這個索引并不局限于整數(shù),它也可以是字符類型,比如 a、b、c 等;
  • DataFrame 是一種表格型數(shù)據(jù)結(jié)構(gòu),它既有行標(biāo)簽,又有列標(biāo)簽。

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

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

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

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



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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號