如何使用pandas進(jìn)行數(shù)據(jù)處理-創(chuàng)新互聯(lián)

如何使用pandas進(jìn)行數(shù)據(jù)處理?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

創(chuàng)新互聯(lián)建站是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開(kāi)發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開(kāi)發(fā),軟件開(kāi)發(fā),小程序設(shè)計(jì),十多年建站對(duì)成都辦公窗簾等多個(gè)行業(yè),擁有多年建站經(jīng)驗(yàn)。

在python中,今天我們開(kāi)始介紹一個(gè)新的常用的計(jì)算工具庫(kù),它就是大名鼎鼎的Pandas

Pandas的全稱是Python Data Analysis Library,是一種基于Numpy的科學(xué)計(jì)算工具。它大的特點(diǎn)就是可以像是操作數(shù)據(jù)庫(kù)當(dāng)中的表一樣操作結(jié)構(gòu)化的數(shù)據(jù),所以它支持許多復(fù)雜和高級(jí)的操作,可以認(rèn)為是Numpy的加強(qiáng)版。它可以很方便地從一個(gè)csv或者是excel表格當(dāng)中構(gòu)建出完整的數(shù)據(jù),并支持許多表級(jí)別的批量數(shù)據(jù)計(jì)算接口。

安裝使用

和幾乎所有的Python包一樣,pandas也可以通過(guò)pip進(jìn)行安裝。如果你裝過(guò)Anaconda套件的話,那么像是numpy、pandas等庫(kù)已經(jīng)自動(dòng)安裝好了,如果沒(méi)有安裝過(guò)也沒(méi)有關(guān)系,我們使用一行命令即可完成安裝。

pip install pandas復(fù)制代碼

和Numpy一樣,我們?cè)谑褂胮andas的時(shí)候通常也會(huì)給它起一個(gè)別名,pandas的別名是pd。所以使用pandas的慣例都是:

import pandas as pd復(fù)制代碼

如果你運(yùn)行這一行沒(méi)有報(bào)錯(cuò)的話,那么說(shuō)明你的pandas已經(jīng)安裝好了。一般和pandas經(jīng)常一起使用的還有另外兩個(gè)包,其中一個(gè)也是科學(xué)計(jì)算包叫做Scipy,另外一個(gè)是對(duì)數(shù)據(jù)進(jìn)行可視化作圖的工具包,叫做Matplotlib。我們也可以使用pip將這兩個(gè)包一起安裝了,在之后的文章當(dāng)中,用到這兩個(gè)包的時(shí)候,也會(huì)簡(jiǎn)單介紹一下它們的用法。

pip install scipy matplotlib復(fù)制代碼

Series 索引

在pandas當(dāng)中我們最常用的數(shù)據(jù)結(jié)構(gòu)有兩個(gè),一個(gè)是Series另外一個(gè)是DataFrame。其中series是一維數(shù)據(jù)結(jié)構(gòu),可以簡(jiǎn)單理解成一維數(shù)組或者是一維向量。而DataFrame自然就是二維數(shù)據(jù)結(jié)構(gòu)了,可以理解成表或者是二維數(shù)組。

我們先來(lái)看看Series,Series當(dāng)中存儲(chǔ)的數(shù)據(jù)主要有兩個(gè),一個(gè)是一組數(shù)據(jù)構(gòu)成的數(shù)組,另外一個(gè)是這組數(shù)據(jù)的索引或者是標(biāo)簽。我們簡(jiǎn)單創(chuàng)建一個(gè)Series打印出來(lái)看一下就明白了。

這里我們隨意創(chuàng)建了一個(gè)包含四個(gè)元素的Series,然后將它打印了出來(lái)??梢钥吹酱蛴〉臄?shù)據(jù)一共有兩列,第二列是我們剛才創(chuàng)建的時(shí)候輸入的數(shù)據(jù),第一列就是它的索引。由于我們創(chuàng)建的時(shí)候沒(méi)有特意指定索引,所以pandas會(huì)自動(dòng)為我們創(chuàng)建行號(hào)索引,我們可以通過(guò)Series類型當(dāng)中的values和index屬性查看到Series當(dāng)中存儲(chǔ)的數(shù)據(jù)和索引:

這里輸出的values是一個(gè)Numpy的數(shù)組,這并不奇怪,因?yàn)槲覀兦懊嬲f(shuō)了,pandas是一個(gè)基于Numpy開(kāi)發(fā)的科學(xué)計(jì)算庫(kù),Numpy是它的底層。從打印出來(lái)的index的信息當(dāng)中,我們可以看到這是一個(gè)Range類型的索引,它的范圍以及步長(zhǎng)。

索引是Series構(gòu)建函數(shù)當(dāng)中的一個(gè)默認(rèn)參數(shù),如果我們不填,它默認(rèn)會(huì)為我們生成一個(gè)Range索引,其實(shí)也就是數(shù)據(jù)的行號(hào)。我們也可以自己指定數(shù)據(jù)的索引,比如我們?cè)趧偛诺拇a當(dāng)中加入index這個(gè)參數(shù),我們就可以自己指定索引了。

當(dāng)我們指定了字符類型的索引之后,index返回的結(jié)果就不再是RangeIndex而是Index了。說(shuō)明pandas內(nèi)部對(duì)數(shù)值型索引和字符型索引是做了區(qū)分的。

有了索引,自然是用來(lái)查找元素用的。我們可以直接將索引當(dāng)做是數(shù)組的下標(biāo)使用,兩者的效果是一樣的。不僅如此,索引數(shù)組也是可以接受的,我們可以直接查詢?nèi)舾蓚€(gè)索引的值。

另外在創(chuàng)建Series的時(shí)候,重復(fù)的索引也是允許的。同樣當(dāng)我們使用索引查詢的時(shí)候也會(huì)得到多個(gè)結(jié)果。

不僅如此,像是Numpy那樣的bool型索引也依然是支持的:

Series計(jì)算

Series支持許多類型的計(jì)算,我們可以直接使用加減乘除操作對(duì)整個(gè)Series進(jìn)行運(yùn)算

也可以使用Numpy當(dāng)中的運(yùn)算函數(shù)來(lái)進(jìn)行一些復(fù)雜的數(shù)學(xué)運(yùn)算,但是這樣計(jì)算得到的結(jié)果會(huì)是一個(gè)Numpy的array。

因?yàn)镾eries當(dāng)中有索引,所以我們也可以使用dict的方式判斷索引是否在Series當(dāng)中

Series有索引也有值,其實(shí)和dict的存儲(chǔ)結(jié)構(gòu)是一樣的,所以Seires也支持通過(guò)一個(gè)dict來(lái)初始化:

通過(guò)這種方式創(chuàng)建出來(lái)的順序就是dict當(dāng)中key存儲(chǔ)的順序,我們可以在創(chuàng)建的時(shí)候指定index,這樣就可以控制它的順序了。

我們?cè)谥付╥ndex的時(shí)候額外傳入了一個(gè)沒(méi)有在dict當(dāng)中出現(xiàn)過(guò)的key,由于在dict當(dāng)中找不到對(duì)應(yīng)的值,Series會(huì)將它記成NAN(Not a number)。可以理解成是非法值或者是空值,在我們處理特征或者是訓(xùn)練數(shù)據(jù)的時(shí)候,經(jīng)常會(huì)遇到存在一些條目的數(shù)據(jù)的某個(gè)特征空缺的情況,我們可以通過(guò)pandas當(dāng)中isnull和notnull函數(shù)檢查空缺的情況。

當(dāng)然Series當(dāng)中也有isnull的函數(shù),我們也可以調(diào)用。

最后,Series當(dāng)中的index也是可以修改的, 我們可以直接給它賦上新值:

總結(jié)

從核心本質(zhì)上來(lái)說(shuō),pandas當(dāng)中的Series就是在Numpy一維數(shù)組上做的一層封裝,加上了索引等一些相關(guān)的功能。所以我們可以想見(jiàn)DataFrame其實(shí)就是一個(gè)Series的數(shù)組的封裝,加上了更多數(shù)據(jù)處理相關(guān)的功能。我們把核心結(jié)構(gòu)把握住了,再來(lái)理解整個(gè)pandas的功能要比我們一個(gè)一個(gè)死記這些api有用得多。

pandas是Python數(shù)據(jù)處理的一大利器,作為一個(gè)合格的算法工程師幾乎是必會(huì)的內(nèi)容,也是我們使用Python進(jìn)行機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)的基礎(chǔ)。根據(jù)調(diào)查資料顯示,算法工程師日常的工作有70%的份額投入在了數(shù)據(jù)處理當(dāng)中,真正用來(lái)實(shí)現(xiàn)模型、訓(xùn)練模型的只有30%不到。因此可見(jiàn)數(shù)據(jù)處理的重要性,想要在行業(yè)當(dāng)中有所發(fā)展,絕不僅僅是學(xué)會(huì)模型就足夠的。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)如何使用pandas進(jìn)行數(shù)據(jù)處理大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

當(dāng)前題目:如何使用pandas進(jìn)行數(shù)據(jù)處理-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article36/eijsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站關(guān)鍵詞優(yōu)化、商城網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司、小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)