最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Pandas教程(非常詳細(xì))

2023-05-26 16:20 作者:下班被游戲打-  | 我要投稿

Pandas 庫(kù)是一個(gè)免費(fèi)、開(kāi)源的第三方 Python 庫(kù),是 Python 數(shù)據(jù)分析必不可少的工具之一,它為 Python 數(shù)據(jù)分析提供了高性能,且易于使用的數(shù)據(jù)結(jié)構(gòu),即 Series 和 DataFrame。Pandas 自誕生后被應(yīng)用于眾多的領(lǐng)域,比如金融、統(tǒng)計(jì)學(xué)、社會(huì)科學(xué)、建筑工程等。

Pandas 庫(kù)基于 Python NumPy 庫(kù)開(kāi)發(fā)而來(lái),因此,它可以與 Python 的科學(xué)計(jì)算庫(kù)配合使用。Pandas 提供了兩種數(shù)據(jù)結(jié)構(gòu),分別是 Series(一維數(shù)組結(jié)構(gòu))與 DataFrame(二維數(shù)組結(jié)構(gòu)),這兩種數(shù)據(jù)結(jié)構(gòu)極大地增強(qiáng)的了 Pandas 的數(shù)據(jù)分析能力。在本套教程中,我們將學(xué)習(xí) Python Pandas 的各種方法、特性以及如何在實(shí)踐中運(yùn)用它們。

教程特點(diǎn)

本套教程是為 Pandas 初學(xué)者打造的,學(xué)習(xí)完本套教程,您將在一定程度上掌握 Pandas 的基礎(chǔ)知識(shí),以及各種功能。如果您是從事數(shù)據(jù)分析的工作人員,那么這套教程會(huì)對(duì)您有所幫助。

本套教程對(duì) Python Pandas 庫(kù)進(jìn)行詳細(xì)地講解,包括文件讀寫(xiě)、統(tǒng)計(jì)學(xué)函數(shù)、缺失值處理、以及數(shù)據(jù)可視化等重點(diǎn)知識(shí)。為了降低初學(xué)者的學(xué)習(xí)門(mén)檻,我們的教程盡量采用通俗易懂、深入淺出的語(yǔ)言風(fēng)格,相信通過(guò)對(duì)本套教程的學(xué)習(xí),您一定會(huì)收獲頗豐。

閱讀條件

在開(kāi)始學(xué)習(xí)本套教程前,首先您應(yīng)該對(duì)于數(shù)據(jù)分析、數(shù)據(jù)可視化的概念有一定程度的了解,并且您已經(jīng)熟練掌握 Python 語(yǔ)言的基礎(chǔ)知識(shí)。其次,由于 Pandas 庫(kù)是在 NumPy 庫(kù)的基礎(chǔ)上構(gòu)建而來(lái),所以建議您提前學(xué)習(xí)《Python NumPy教程》。

Pandas是什么

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 這個(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 能夠讓你專(zhuān)注于代碼的核心層面;

Pandas 實(shí)現(xiàn)了與其他庫(kù)的集成,比如 Scipy、scikit-learn 和 Matplotlib;

Pandas 官方網(wǎng)站(點(diǎn)擊訪(fǎng)問(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ù),它也可以是字符類(lèi)型,比如 a、b、c 等;

DataFrame 是一種表格型數(shù)據(jù)結(jié)構(gòu),它既有行標(biāo)簽,又有列標(biāo)簽。

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

Pandas庫(kù)下載和安裝

Python 官方標(biāo)準(zhǔn)發(fā)行版并沒(méi)有自帶 Pandas 庫(kù),因此需要另行安裝。除了標(biāo)準(zhǔn)發(fā)行版外,還有一些第三方機(jī)構(gòu)發(fā)布的 Python 免費(fèi)發(fā)行版, 它們?cè)诠俜桨姹镜幕A(chǔ)上開(kāi)發(fā)而來(lái),并有針對(duì)性的提前安裝了一些 Python 模塊,從而滿(mǎn)足某些特定領(lǐng)域的需求,比如專(zhuān)門(mén)適應(yīng)于科學(xué)計(jì)算領(lǐng)域的 Anaconda,它就提前安裝了多款適用于科學(xué)計(jì)算的軟件包。

對(duì)于第三方發(fā)行版而言,它們已經(jīng)自帶 Pandas 庫(kù),所以無(wú)須另行安裝。下面介紹了常用的免費(fèi)發(fā)行版:

Anaconda(官網(wǎng)下載:https://www.anaconda.com/)是一個(gè)開(kāi)源的 Python 發(fā)行版,包含了 180 多個(gè)科學(xué)包及其依賴(lài)項(xiàng)。除了支持 Windows 系統(tǒng)外,也支持 Linux 和 Mac 系統(tǒng)。

Python(x,y)(下載地址:https://python-xy.github.io/)是一款基于 Python、Qt (圖形用戶(hù)界面)和 Spyder (交互式開(kāi)發(fā)環(huán)境)開(kāi)發(fā)的軟件,主要用于數(shù)值計(jì)算、數(shù)據(jù)分析和數(shù)據(jù)可視化等工程項(xiàng)目,目前只支持 Python 2 版本。

WinPython(下載地址:https://sourceforge.net/projects/winpython/files/)一個(gè)免費(fèi)的 Python 發(fā)行版,包含了常用的科學(xué)計(jì)算包與 Spyder IDE,但僅支持 Windows 系統(tǒng)。

下面介紹在不同操作系統(tǒng)環(huán)境下,標(biāo)準(zhǔn)發(fā)行版安裝 Pandas 的方法。

Windows系統(tǒng)安裝

使用 pip 包管理器安裝 Pandas,是最簡(jiǎn)單的一種安裝方式。在 CMD 命令提示符界面行執(zhí)行以下命令:

pip install pandas

Linux系統(tǒng)安裝

對(duì)于不同的版本的 Linux 系統(tǒng),您可以采用它們各自的包管理器來(lái)安裝 Pandas。

1) Ubuntu用戶(hù)

Pandas 通常需要與其他軟件包一起使用,因此可采用以下命令,一次性安裝所有包:


2) Fedora用戶(hù)

對(duì)于 Fedora 用戶(hù)而言,可采用以下命令安裝:

MacOSX系統(tǒng)安裝

對(duì)于 Mac 用戶(hù)而言,同樣可以直接使用 pip 包管理器來(lái)安裝,命令如下:

Pandas Series入門(mén)教程

Series 結(jié)構(gòu),也稱(chēng) Series 序列,是 Pandas 常用的數(shù)據(jù)結(jié)構(gòu)之一,它是一種類(lèi)似于一維數(shù)組的結(jié)構(gòu),由一組數(shù)據(jù)值(value)和一組標(biāo)簽組成,其中標(biāo)簽與數(shù)據(jù)值之間是一一對(duì)應(yīng)的關(guān)系。

Series 可以保存任何數(shù)據(jù)類(lèi)型,比如整數(shù)、字符串、浮點(diǎn)數(shù)、Python 對(duì)象等,它的標(biāo)簽?zāi)J(rèn)為整數(shù),從 0 開(kāi)始依次遞增。Series 的結(jié)構(gòu)圖,如下所示:

通過(guò)標(biāo)簽我們可以更加直觀(guān)地查看數(shù)據(jù)所在的索引位置。

創(chuàng)建Series對(duì)象

Pandas 使用 Series() 函數(shù)來(lái)創(chuàng)建 Series 對(duì)象,通過(guò)這個(gè)對(duì)象可以調(diào)用相應(yīng)的方法和屬性,從而達(dá)到處理數(shù)據(jù)的目的:

我們也可以使用數(shù)組、字典、標(biāo)量值或者 Python 對(duì)象來(lái)創(chuàng)建 Series 對(duì)象。下面展示了創(chuàng)建 Series 對(duì)象的不同方法:

1) 創(chuàng)建一個(gè)空Series對(duì)象

使用以下方法可以創(chuàng)建一個(gè)空的 Series 對(duì)象,如下所示:

輸出結(jié)果如下:

Series([], dtype: float64)

2) ndarray創(chuàng)建Series對(duì)象

ndarray 是 NumPy 中的數(shù)組類(lèi)型,當(dāng) data 是 ndarry 時(shí),傳遞的索引必須具有與數(shù)組相同的長(zhǎng)度。假如沒(méi)有給 index 參數(shù)傳參,在默認(rèn)情況下,索引值將使用是 range(n) 生成,其中 n 代表數(shù)組長(zhǎng)度,如下所示:

[0,1,2,3…. range(len(array))-1]

使用默認(rèn)索引,創(chuàng)建 Series 序列對(duì)象:

輸出結(jié)果如下:


上述示例中沒(méi)有傳遞任何索引,所以索引默認(rèn)從 0 開(kāi)始分配 ,其索引范圍為 0 到len(data)-1,即 0 到 3。這種設(shè)置方式被稱(chēng)為“隱式索引”。

除了上述方法外,你也可以使用“顯式索引”的方法定義索引標(biāo)簽,示例如下:

輸出結(jié)果:


3) dict創(chuàng)建Series對(duì)象

您可以把 dict 作為輸入數(shù)據(jù)。如果沒(méi)有傳入索引時(shí)會(huì)按照字典的鍵來(lái)構(gòu)造索引;反之,當(dāng)傳遞了索引時(shí)需要將索引標(biāo)簽與字典中的值一一對(duì)應(yīng)。

下面兩組示例分別對(duì)上述兩種情況做了演示。

示例1,沒(méi)有傳遞索引時(shí):

4) 標(biāo)量創(chuàng)建Series對(duì)象

如果 data 是標(biāo)量值,則必須提供索引,示例如下:


訪(fǎng)問(wèn)Series數(shù)據(jù)

上述講解了創(chuàng)建 Series 對(duì)象的多種方式,那么我們應(yīng)該如何訪(fǎng)問(wèn) Series 序列中元素呢?分為兩種方式,一種是位置索引訪(fǎng)問(wèn);另一種是索引標(biāo)簽訪(fǎng)問(wèn)。


1) 位置索引訪(fǎng)問(wèn)

這種訪(fǎng)問(wèn)方式與 ndarray 和 list 相同,使用元素自身的下標(biāo)進(jìn)行訪(fǎng)問(wèn)。我們知道數(shù)組的索引計(jì)數(shù)從 0 開(kāi)始,這表示第一個(gè)元素存儲(chǔ)在第 0 個(gè)索引位置上,以此類(lèi)推,就可以獲得 Series 序列中的每個(gè)元素。下面看一組簡(jiǎn)單的示例:

2) 索引標(biāo)簽訪(fǎng)問(wèn)

Series 類(lèi)似于固定大小的 dict,把 index 中的索引標(biāo)簽當(dāng)做 key,而把 Series 序列中的元素值當(dāng)做 value,然后通過(guò) index 索引標(biāo)簽來(lái)訪(fǎng)問(wèn)或者修改元素值。

示例1,使用索標(biāo)簽訪(fǎng)問(wèn)單個(gè)元素值:


Pandas教程(非常詳細(xì))的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
义乌市| 从化市| 姜堰市| 扎兰屯市| 三门峡市| 贡觉县| 德江县| 白玉县| 东城区| 连江县| 县级市| 綦江县| 乌海市| 略阳县| 金秀| 柳河县| 体育| 黄梅县| 天峨县| 县级市| 东乡族自治县| 民权县| 湖北省| 临湘市| 平远县| 金沙县| 博罗县| 耒阳市| 樟树市| 朝阳市| 九龙坡区| 大关县| 浦北县| 衡阳市| 永兴县| 尤溪县| 应用必备| 灵宝市| 盐城市| 都安| 和田县|