數(shù)據(jù)分析應(yīng)用項(xiàng)目化教程(Python) 課件 項(xiàng)目4 使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算_第1頁(yè)
數(shù)據(jù)分析應(yīng)用項(xiàng)目化教程(Python) 課件 項(xiàng)目4 使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算_第2頁(yè)
數(shù)據(jù)分析應(yīng)用項(xiàng)目化教程(Python) 課件 項(xiàng)目4 使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算_第3頁(yè)
數(shù)據(jù)分析應(yīng)用項(xiàng)目化教程(Python) 課件 項(xiàng)目4 使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算_第4頁(yè)
數(shù)據(jù)分析應(yīng)用項(xiàng)目化教程(Python) 課件 項(xiàng)目4 使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第四章使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算

任務(wù)4.1構(gòu)建數(shù)據(jù)對(duì)象Pandas介紹Pandas的主要數(shù)據(jù)結(jié)構(gòu)構(gòu)建Series對(duì)象查看Series對(duì)象屬性構(gòu)建DataFrame對(duì)象查看DataFrame對(duì)象屬性查看DataFrame和Series關(guān)系創(chuàng)建Index對(duì)象Pandas介紹NumPy是Python中科學(xué)計(jì)算的基礎(chǔ)包,主要用于對(duì)多維數(shù)組執(zhí)行計(jì)算,幫助我們輕松進(jìn)行數(shù)值計(jì)算。pandas基于numpy,除了處理數(shù)值之外,還能夠幫助我們處理字符串、時(shí)間序列等其他類型的數(shù)據(jù)。Pandas

Python的核心數(shù)據(jù)分析支持庫(kù),提供了快速、靈活、明確的數(shù)據(jù)結(jié)構(gòu),旨在簡(jiǎn)單、直觀地處理關(guān)系型、標(biāo)記型數(shù)據(jù)。

Pandas的主要數(shù)據(jù)結(jié)構(gòu)

Pandas的主要數(shù)據(jù)結(jié)構(gòu)是

Series(一維數(shù)據(jù))與

DataFrame(二維數(shù)據(jù)),數(shù)據(jù)分析相關(guān)的所有事務(wù)都是圍繞這兩種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的。Series

是帶標(biāo)簽的一維數(shù)組,可存儲(chǔ)整數(shù)、浮點(diǎn)數(shù)、字符串、Python對(duì)象等類型的數(shù)據(jù)。Series主要由一組數(shù)據(jù)和與之相關(guān)的索引兩部分構(gòu)成,如圖Series對(duì)象結(jié)構(gòu)。索引可以是名字,默認(rèn)是數(shù)據(jù)的下標(biāo)。而numpy的多維數(shù)組一般是同質(zhì)的,數(shù)組的索引只能是下標(biāo)。Series對(duì)象是一維數(shù)組結(jié)構(gòu),操作上與NumPy中的一維數(shù)組ndarray類似。Series對(duì)象結(jié)構(gòu)Pandas的主要數(shù)據(jù)結(jié)構(gòu)DataFrame

是由多種類型的列構(gòu)成的二維標(biāo)簽數(shù)據(jù)結(jié)構(gòu),類似于Excel、SQL表,或Series對(duì)象構(gòu)成的字典。DataFrame類似numpy的二維數(shù)組,與二維數(shù)組的主要區(qū)別是,DataFrame既有行索引,也有列索引,不僅可以通過(guò)位置(下標(biāo))索引訪問(wèn)數(shù)據(jù),還可以通過(guò)標(biāo)簽(名稱)索引訪問(wèn)數(shù)據(jù),也就是說(shuō)可以通過(guò)行索引標(biāo)簽名和列索引標(biāo)簽名訪問(wèn)數(shù)據(jù),而二維數(shù)組只能通過(guò)行位置索引和列位置索引訪問(wèn)數(shù)據(jù)。另外一個(gè)主要區(qū)別是DataFrame的各列可以是不同的數(shù)據(jù)類型,而二維數(shù)組各列是相同的數(shù)值型。DataFrame對(duì)象結(jié)構(gòu)構(gòu)建Series對(duì)象pd.Series(data=None,index=None,dtype=None)參數(shù):data:傳入的數(shù)據(jù),可以是ndarray、list等index:索引,與數(shù)據(jù)的長(zhǎng)度相等。如果沒(méi)有傳入索引參數(shù),則默認(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)從0-N的整數(shù)索引。dtype:數(shù)據(jù)的類型構(gòu)建Series對(duì)象用一維ndarray數(shù)組創(chuàng)建Series對(duì)象。用字典創(chuàng)建Series對(duì)象。鍵值對(duì)中的“鍵”是用來(lái)作為Series對(duì)象的索引,鍵值對(duì)中的“值”作為Series對(duì)象的數(shù)據(jù)。構(gòu)建Series對(duì)象用標(biāo)量值創(chuàng)建Series對(duì)象,Series按索引長(zhǎng)度重復(fù)該標(biāo)量值用列表創(chuàng)建Series對(duì)象查看Series對(duì)象的屬性s.shape:Series對(duì)象的形狀。s.dtype:Series對(duì)象的數(shù)據(jù)數(shù)組中的數(shù)據(jù)類型。s.values:Series對(duì)象的數(shù)據(jù)數(shù)組s.index:Series對(duì)象的數(shù)據(jù)數(shù)組的索引:Series對(duì)象名:索引對(duì)象名構(gòu)建DataFrame對(duì)象pd.DataFrame(data=None,index=None,columns=None)參數(shù):index:行標(biāo)簽。如果沒(méi)有傳入索引參數(shù),則默認(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)從0-N的整數(shù)索引。columns:列標(biāo)簽。如果沒(méi)有傳入索引參數(shù),則默認(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)從0-N的整數(shù)索引。通過(guò)已有數(shù)據(jù)創(chuàng)建構(gòu)建DataFrame對(duì)象用多維數(shù)組創(chuàng)建DataFrame構(gòu)建DataFrame對(duì)象用Series字典或字典創(chuàng)建DataFramedata={"name":{'one':"Jack",'two':"Mary",'three':"John",'four':"Alice"},"age":{'one':10,'two':20,'three':30,'four':40},"weight":{'one':30,'two':40,'three':50,'four':65}}構(gòu)建DataFrame對(duì)象用一維數(shù)組字典創(chuàng)建DataFrame構(gòu)建DataFrame對(duì)象用列表字典生成DataFrame查看DataFrame對(duì)象屬性shape:DataFrame對(duì)象的形狀index:DataFrame的行索引列表columns:DataFrame的列索引列表values:DataFrame對(duì)象中的數(shù)據(jù),

NumPy二維數(shù)組查看DataFrame和Series關(guān)系DataFrame的每一列都是一個(gè)Series,DataFrame的每一行都是一個(gè)Series。創(chuàng)建Index對(duì)象存儲(chǔ)軸標(biāo)簽的數(shù)據(jù)結(jié)構(gòu)是IndexDataFrame,行標(biāo)簽(即行索引)和列名稱(即列索引)都是Index對(duì)象Series,行索引是Index對(duì)象。小結(jié)Pandas介紹Pandas的主要數(shù)據(jù)結(jié)構(gòu)構(gòu)建Series對(duì)象查看Series對(duì)象屬性構(gòu)建DataFrame對(duì)象查看DataFrame對(duì)象屬性查看DataFrame和Series關(guān)系創(chuàng)建Index對(duì)象第四章使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算

任務(wù)4.2索引操作Pandas索引操作概述使用位置索引和標(biāo)簽索引操作Series使用位置索引和標(biāo)簽索引操作DataFrame使用函數(shù)式索引操作Series和DataFrame使用常見(jiàn)查詢方法查詢數(shù)據(jù)索引用途索引變換Pandas索引操作概述Pandas有關(guān)索引的用法類似于NumPy數(shù)組的索引,只不過(guò)Pandas的索引既可以使用位置索引(下標(biāo)),也可以使用標(biāo)簽索引(索引名)。另外,針對(duì)位置索引和標(biāo)簽索引專門提供了iloc和loc屬性訪問(wèn)方法。無(wú)論是位置索引,還是標(biāo)簽索引,表達(dá)上都有4種索引方式,即基本索引、切片索引、花式索引和布爾索引。Pandas索引操作概述NumPy多維數(shù)組Ndarray訪問(wèn)索引的類別:位置(下標(biāo))索引索引的表達(dá)方式:四種,基本索引、切片索引、花式索引和布爾索引

索引的操作方式:索引運(yùn)算符[]Pandas數(shù)據(jù)結(jié)構(gòu)Series和DataFrame訪問(wèn)索引的類別:位置(下標(biāo))索引

、標(biāo)簽(名稱)索引索引的表達(dá)方式:四種,基本索引、切片索引、花式索引和布爾索引索引的操作方式:索引運(yùn)算符[]和屬性運(yùn)算符.,有一定局限性

數(shù)據(jù)結(jié)構(gòu)對(duì)象的iloc和loc屬性,靈活方便Pandas索引操作概述iloc:基于位置索引或布爾數(shù)組索引訪問(wèn)數(shù)據(jù)結(jié)構(gòu),也就是同樣可以使用四種索引來(lái)訪問(wèn)數(shù)據(jù)結(jié)構(gòu)。切片索引只包含起始位置索引,不包含結(jié)束位置索引。

loc:基于標(biāo)簽索引或布爾數(shù)組(或帶標(biāo)簽的布爾數(shù)組)索引訪問(wèn)數(shù)據(jù)結(jié)構(gòu),也就是同樣可以使用四種索引來(lái)訪問(wèn)數(shù)據(jù)結(jié)構(gòu)。切片既包含起始標(biāo)簽索引,也包含結(jié)束標(biāo)簽索引。

使用位置索引和標(biāo)簽索引操作Series-概述

使用索引運(yùn)算符[]和屬性.運(yùn)算符操作Series使用iloc或loc屬性操作Seriess.iloc[行位置索引]、s.iloc[布爾數(shù)組索引]s.loc[行標(biāo)簽索引]、s.loc[帶標(biāo)簽布爾數(shù)組索引或布爾數(shù)組索引]索引運(yùn)算符、iloc或loc屬性中使用四種索引使用位置索引和標(biāo)簽索引操作Series-基本索引使用基本索引,s表示Series對(duì)象。形如:s[下標(biāo)]、s[標(biāo)簽]、s.標(biāo)簽、s.iloc[下標(biāo)]、s.loc[標(biāo)簽]使用位置索引和標(biāo)簽索引操作Series-切片索引使用切片索引形如:s[下標(biāo)i:下標(biāo)j]、s[標(biāo)簽i:標(biāo)簽j]、s.iloc[下標(biāo)i:下標(biāo)j]、s.loc[標(biāo)簽i:標(biāo)簽j]使用位置索引和標(biāo)簽索引操作Series-花式索引使用花式索引形如:s[下標(biāo)列表]、s[標(biāo)簽列表]、s.iloc[下標(biāo)列表]、s.loc[標(biāo)簽列表]使用位置索引和標(biāo)簽索引操作Series-布爾索引使用布爾索引形如:s[帶標(biāo)簽的布爾數(shù)組或布爾數(shù)組]、s.loc[帶標(biāo)簽的布爾數(shù)組或布爾數(shù)組]、s.iloc[布爾數(shù)組]使用位置索引和標(biāo)簽索引操作DataFrame-概述使用索引運(yùn)算符[]和.操作DataFrame使用iloc或loc屬性操作DataFramedf.iloc[行位置索引]、df.iloc[布爾數(shù)組索引]df.loc[行標(biāo)簽索引]、df.loc[帶標(biāo)簽布爾數(shù)組索引或布爾數(shù)組索引]df.iloc[行位置索引,列位置索引]df.loc[行標(biāo)簽索引,列標(biāo)簽索引]df[,]不支持索引運(yùn)算符、iloc或loc屬性中使用四種索引使用位置索引和標(biāo)簽索引操作DataFrame-基本索引通過(guò)[]和.直接使用基本索引,df表示DataFrame對(duì)象。注意:df的索引運(yùn)算符操作是先列后行,先列必須得到是一個(gè)Series才能后行形如:df[列標(biāo)簽]或df.列標(biāo)簽,得到一個(gè)Series,后續(xù)按Series索引操作。使用位置索引和標(biāo)簽索引操作DataFrame-基本索引通過(guò)loc和iloc使用基本索引,注意,是始終是先行后列取數(shù)據(jù)df.loc方法,始終先行后列的標(biāo)簽索引查詢df.iloc方法,始終先行后列的位置索引查詢使用位置索引和標(biāo)簽索引操作DataFrame-切片索引直接使用切片索引,注意,切片索引只能使用行位置索引和行標(biāo)簽索引表達(dá),不支持列索引表達(dá)形如:df[行下標(biāo)i:行下標(biāo)j]、df[行標(biāo)簽i:行標(biāo)簽j],即使i==j,結(jié)果也是DataFrame使用位置索引和標(biāo)簽索引操作DataFrame-切片索引iloc和loc使用切片索引,始終是先行獲取數(shù)據(jù)形如:df.iloc[行下標(biāo)i:行下標(biāo)j]、df.loc[行標(biāo)簽i:行標(biāo)簽j]使用位置索引和標(biāo)簽索引操作DataFrame-花式索引直接使用花式索引,注意,也是先列方向,花式索引只能使用列標(biāo)簽索引表達(dá)形如:df[[列標(biāo)簽列表]]使用位置索引和標(biāo)簽索引操作DataFrame-花式索引iloc和loc使用花式索引,始終是先行獲取數(shù)據(jù)形如:df.iloc[[下標(biāo)列表]]、df.loc[[標(biāo)簽列表]]使用位置索引和標(biāo)簽索引操作DataFrame-布爾索引直接使用布爾數(shù)組索引形如:df[帶標(biāo)簽的布爾數(shù)組]、df[布爾數(shù)組]使用位置索引和標(biāo)簽索引操作DataFrame-布爾索引df.iloc和df.loc使用布爾數(shù)組形如:df.iloc[布爾數(shù)組]、df.loc[帶標(biāo)簽的布爾數(shù)組]、df.loc[布爾數(shù)組]使用位置索引和標(biāo)簽索引操作DataFrame-綜合df.iloc和df.loc使用行列查詢數(shù)據(jù),行列位置索引和標(biāo)簽索引均可使用基本索引、切片索引、花式索引和布爾索引。df.iloc的布爾數(shù)組作為索引,不能直接使用Series或DataFrame類型的布爾數(shù)組(即帶標(biāo)簽的布爾數(shù)組),需要將帶標(biāo)簽的布爾數(shù)組取values轉(zhuǎn)換成不帶標(biāo)簽的布爾數(shù)組。形如:df.iloc[行位置索引,列位置索引]、df.loc[行標(biāo)簽索引,列標(biāo)簽索引]

df由行、列同時(shí)定位數(shù)據(jù),必須使用iloc或loc方式,不能使用df[,]df可以取值得到二維數(shù)組來(lái)使用索引運(yùn)算符[,]索引操作數(shù)據(jù)小結(jié)以四種索引,基本索引、切片索引、花式索引、布爾索引為主線,每種索引可以用位置索引或標(biāo)簽索引來(lái)表達(dá),同時(shí)以索引運(yùn)算符[]和屬性運(yùn)算符.、iloc和loc屬性兩種訪問(wèn)方式來(lái)使用索引。在二種訪問(wèn)方式里面,都可以使用四種索引。操作索引的基本結(jié)構(gòu)有[]、[,]、[][]、.和iloc[]、iloc[,]、loc[]、loc[,]注意點(diǎn):df[]:df[]先列結(jié)果是Series才能后行df[0:4]:直接切片索引僅僅支持行索引方向,不支持列索引方向iloc和loc總是先行索引方向,iloc[,]和loc[,]中逗號(hào)左邊是行索引,右邊是列索引第四章使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算

任務(wù)4.2索引操作Pandas索引操作概述使用位置索引和標(biāo)簽索引操作Series使用位置索引和標(biāo)簽索引操作DataFrame使用函數(shù)式索引操作Series和DataFrame使用常見(jiàn)查詢方法查詢數(shù)據(jù)索引用途索引變換使用函數(shù)式索引操作Series和DataFrame函數(shù)式索引:指帶有一個(gè)Series或DataFrame參數(shù)的函數(shù),并返回有效的索引輸出,有效索引就是四種索引之一。df(或s).iloc屬性有效索引包括:一個(gè)整數(shù),例如5整數(shù)列表或數(shù)組,例如[4,3,0]帶有整數(shù)的切片對(duì)象,例如1:7布爾數(shù)組df(或s).loc有效索引包括:?jiǎn)蝹€(gè)標(biāo)簽,例如5或'a'(注意,它5被解釋為索引的標(biāo)簽,此用法不是索引的整數(shù)位置)列表或標(biāo)簽數(shù)組,例如['a','b','c']帶標(biāo)簽的切片對(duì)象'a':'f'(注意,標(biāo)簽切片的端點(diǎn)包括在內(nèi))布爾數(shù)組df[]、s[]有效索引有位置有效索引,也有標(biāo)簽有效索引,遵循df和s索引運(yùn)算符[]操作要求函數(shù)返回位置索引函數(shù)返回標(biāo)簽索引使用常見(jiàn)查詢方法查詢數(shù)據(jù)—df.querydf.query方法:DataFrame對(duì)象的query()方法允許使用表達(dá)式查詢DataFrame的數(shù)據(jù),query也是類似于SQL中where關(guān)鍵字的語(yǔ)法邏輯。query有兩個(gè)SQL中標(biāo)志性的設(shè)計(jì):其一是@引用自定義外部變量,其二是對(duì)于特殊的列名(例如包含空格的字符)可以用反引號(hào)``加以修飾引用。query特點(diǎn):節(jié)省內(nèi)存以及有時(shí)他們具有更簡(jiǎn)潔的語(yǔ)法形式,但只能查詢數(shù)據(jù),不能修改數(shù)據(jù)。

使用常見(jiàn)查詢方法查詢數(shù)據(jù)—df.query使用常見(jiàn)查詢方法查詢數(shù)據(jù)—wherewhere方法:從具有布爾向量的Series中選擇值通常會(huì)返回?cái)?shù)據(jù)的子集。為了保證選擇輸出與原始數(shù)據(jù)具有相同的形狀,您可以在Series和DataFrame中使用where方法。where接受的條件需要是布爾類型的,如果條件為真,保持原來(lái)的值,否則,就被賦值為默認(rèn)的NaN或其他指定值。使用常見(jiàn)查詢方法查詢數(shù)據(jù)—wheredf1.where(m,df2)大致相當(dāng)于np.where(m,df1,df2),比如:df.where(df<0,-df)==np.where(df<0,df,-df)。where對(duì)齊輸入布爾條件,以便可以使用設(shè)置進(jìn)行部分選擇。小結(jié)函數(shù)式索引:函數(shù)帶有一個(gè)Series或DataFrame參數(shù),返回有效索引query方法:使用表達(dá)式優(yōu)雅查詢數(shù)據(jù)where方法:使用布爾數(shù)組作為條件查詢,結(jié)果的shape和原數(shù)據(jù)結(jié)構(gòu)shape一致,不滿足條件的數(shù)據(jù)項(xiàng),也可以按指定的axis方向廣播修改數(shù)據(jù)。第四章使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算

任務(wù)4.2索引操作Pandas索引操作概述使用位置索引和標(biāo)簽索引操作Series使用位置索引和標(biāo)簽索引操作DataFrame使用函數(shù)式索引操作Series和DataFrame使用常見(jiàn)查詢方法查詢數(shù)據(jù)索引用途索引變換索引用途把數(shù)據(jù)存儲(chǔ)于普通的column列也能用于數(shù)據(jù)查詢,那使用index的用途是什么呢?更方便的數(shù)據(jù)查詢;使用index可以獲得性能提升;自動(dòng)的數(shù)據(jù)對(duì)齊功能;更多更強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)支持索引用途使用index查詢數(shù)據(jù)索引用途使用index會(huì)提升查詢性能如果index是唯一的,Pandas會(huì)使用哈希表優(yōu)化,查詢性能為O(1)如果index不是唯一的,但是有序,Pandas會(huì)使用二分查找算法,查詢性能為O(logN)如果index是完全隨機(jī)的,那么每次查詢都要掃描全表,查詢性能為O(N)完全隨機(jī)的順序查詢將index排序后的查詢將數(shù)據(jù)隨機(jī)打散

索引用途

使用index能自動(dòng)對(duì)齊數(shù)據(jù)(參考4.3)Series、DataFrame和多維數(shù)組的主要區(qū)別在于,Pandas數(shù)據(jù)結(jié)構(gòu)之間的操作會(huì)自動(dòng)基于標(biāo)簽對(duì)齊數(shù)據(jù)。因此,不用顧及執(zhí)行計(jì)算操作的數(shù)據(jù)結(jié)構(gòu)是否有相同的標(biāo)簽。Pandas數(shù)據(jù)結(jié)構(gòu)集成的數(shù)據(jù)對(duì)齊功能,是Pandas區(qū)別于大多數(shù)標(biāo)簽型數(shù)據(jù)處理工具的重要特性性。index提供更多更強(qiáng)大的索引數(shù)據(jù)結(jié)構(gòu)支持(參考4.4)CategoricalIndex,基于分類數(shù)據(jù)的Index,提升性能;MultiIndex,多維索引,用于groupby多維聚合后結(jié)果等;DatetimeIndex,時(shí)間類型索引,強(qiáng)大的日期和時(shí)間的方法支持;索引變換—reindex和renamereindex執(zhí)行的是索引重組操作,接收一組標(biāo)簽序列作為新索引,既適用于行索引也適用于列標(biāo)簽名,重組之后索引數(shù)量可能發(fā)生變化,索引名為傳入標(biāo)簽序列。當(dāng)原DataFrame中存在新指定的索引時(shí)則提取相應(yīng)行或列,不存在則舍棄。若新指定的索引在原來(lái)索引中不存在,則默認(rèn)賦值為空或填充新值。索引變換—reindex和renamerename執(zhí)行的是索引重命名操作,接收一個(gè)字典映射或一個(gè)變換函數(shù),也均適用于行列索引,重命名之后索引數(shù)量不發(fā)生改變,索引名可能發(fā)生變化。二者均支持兩種變換方式:一種是變換內(nèi)容+axis指定作用軸(可選0/1或index/columns)另一種是直接用index/columns關(guān)鍵字指定作用軸索引變換—index.mapmap僅可用于Series,可接收字典或函數(shù)完成數(shù)據(jù)的變換索引變換—set_index與reset_indexset_index和reset_index是一對(duì)互逆的操作set_index用于置位索引——將DataFrame中列名或列名列表設(shè)置為行索引,默認(rèn)丟棄原列索引,可選drop參數(shù)reset_index用于復(fù)位索引——將索引加入到數(shù)據(jù)中作為一列或直接丟棄,可選drop參數(shù)小結(jié)索引用途使用index查詢數(shù)據(jù)使用index會(huì)提升查詢性能使用index能自動(dòng)對(duì)齊數(shù)據(jù)分層/多級(jí)索引在處理復(fù)雜的數(shù)據(jù)分析和數(shù)據(jù)操作方面為開(kāi)發(fā)者奠定了基礎(chǔ),尤其是在處理高緯度數(shù)據(jù)處理上索引變換reindex和rename索引重組和索引重命名index.map索引處理set_index與reset_index置位索引和復(fù)位索引第四章使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算

任務(wù)4.3數(shù)據(jù)運(yùn)算

算術(shù)運(yùn)算和自動(dòng)對(duì)齊

布爾運(yùn)算

關(guān)系運(yùn)算

排序運(yùn)算

匯總類統(tǒng)計(jì)

唯一去重和按值計(jì)數(shù)

相關(guān)系數(shù)和協(xié)方差算術(shù)運(yùn)算和自動(dòng)對(duì)齊Series、DataFrame和NumPy數(shù)組一樣,也是向量化運(yùn)算,而且支持大多數(shù)NumPy多維數(shù)組的方法Series、DataFrame和多維數(shù)組運(yùn)算的主要區(qū)別:Series、DataFrame之間的操作會(huì)自動(dòng)基于標(biāo)簽對(duì)齊數(shù)據(jù),包括行標(biāo)簽和列標(biāo)簽,生成的結(jié)果是列和行標(biāo)簽的并集。因此,不用顧及執(zhí)行計(jì)算操作的Series、DataFrame是否有完全相同的標(biāo)簽。算術(shù)運(yùn)算和自動(dòng)對(duì)齊Series之間運(yùn)算算術(shù)運(yùn)算和自動(dòng)對(duì)齊DataFrame之間運(yùn)算算術(shù)運(yùn)算和自動(dòng)對(duì)齊DataFrame和Series之間運(yùn)算shape不一致,廣播布爾運(yùn)算布爾運(yùn)算可以通過(guò)'與'(&)、'或'(|)、'非'(~)、異或(^)進(jìn)行組合運(yùn)算,(每一個(gè)計(jì)算項(xiàng)一定要加括號(hào),注意運(yùn)算符的優(yōu)先級(jí))關(guān)系運(yùn)算關(guān)系運(yùn)算符(><==!=),常使用關(guān)系運(yùn)算和邏輯運(yùn)算結(jié)合選取數(shù)據(jù)根據(jù)關(guān)系運(yùn)算選取的都是整行數(shù)據(jù)形如:df[限制條件1&限制條件2…]或df[限制條件1][限制條件2]在df中選擇b和c同時(shí)大于0的那些行,等價(jià)df[(df.b>0)][(df.c>0)]左圖根據(jù)關(guān)系運(yùn)算選取指定列的數(shù)據(jù)形如:df[限制條件][列]、df[列][限制條件]在df中選擇b列和c列同時(shí)大于0的a和b列右圖

排序運(yùn)算

Pandas支持三種排序方式,按索引標(biāo)簽排序,按列里的值排序,按兩種方式混合排序。Series.sort_values()方法用于按值對(duì)Series排序。DataFrame.sort_values()方法用于按行列的值對(duì)DataFrame排序。DataFrame.sort_values()的可選參數(shù)by用于指定按哪列排序,該參數(shù)的值可以是一列或多列數(shù)據(jù)。Series.sort_index()與DataFrame.sort_index()方法用于按索引層級(jí)對(duì)Pandas對(duì)象排序。匯總類統(tǒng)計(jì)Series與DataFrame支持大量統(tǒng)計(jì)的方法,包括sum()、mean()等聚合函數(shù),還包括輸出結(jié)果與原始數(shù)據(jù)集同樣大小的cumsum()、cumprod()等函數(shù)。這些方法基本上都接受axis參數(shù),axis可以用名稱或整數(shù)指定。Pandas的統(tǒng)計(jì)運(yùn)算默認(rèn)忽略缺失值,而Numpy的統(tǒng)計(jì)運(yùn)算遇缺失值結(jié)果為nan。Series:無(wú)需axis參數(shù)DataFrame:index,即axis=0,默認(rèn)值,按列統(tǒng)計(jì)columns,即axis=1,按行統(tǒng)計(jì)唯一值和值計(jì)數(shù)運(yùn)算一般不用于數(shù)值列,而是枚舉、分類列相關(guān)系數(shù)和協(xié)方差對(duì)于兩個(gè)變量X、Y:協(xié)方差:衡量同向反向程度,如果協(xié)方差為正,說(shuō)明X,Y同向變化,協(xié)方差越大說(shuō)明同向程度越高;如果協(xié)方差為負(fù),說(shuō)明X,Y反向運(yùn)動(dòng),協(xié)方差越小說(shuō)明反向程度越高。協(xié)方差矩陣:df.cov()相關(guān)系數(shù):衡量相似度程度,當(dāng)他們的相關(guān)系數(shù)為1時(shí),說(shuō)明兩個(gè)變量變化時(shí)的正向相似度最大,當(dāng)相關(guān)系數(shù)為-1時(shí),說(shuō)明兩個(gè)變量變化的反向相似度最大。相關(guān)系數(shù)矩陣:df.corr(兩者關(guān)系:把協(xié)方差歸一化,也就是相關(guān)系數(shù)。相關(guān)系數(shù)消除了協(xié)方差數(shù)值大小的影響。相關(guān)系數(shù)也可以看成協(xié)方差:一種剔除了兩個(gè)變量量綱影響、標(biāo)準(zhǔn)化后的特殊協(xié)方差,它消除了兩個(gè)變量變化幅度的影響,而只是單純反應(yīng)兩個(gè)變量每單位變化時(shí)的相似程度。相關(guān)系數(shù)和協(xié)方差y經(jīng)由函數(shù)構(gòu)造出來(lái),x和y的相關(guān)系數(shù)應(yīng)該為1。但從實(shí)驗(yàn)結(jié)果可知,相關(guān)系數(shù)方法默認(rèn)值,針對(duì)非線性數(shù)據(jù)有一定的誤差。小結(jié)算術(shù)運(yùn)算和自動(dòng)對(duì)齊

布爾運(yùn)算

關(guān)系運(yùn)算

排序運(yùn)算

匯總類統(tǒng)計(jì)

唯一去重和按值計(jì)數(shù)

相關(guān)系數(shù)和協(xié)方差第四章使用pandas進(jìn)行數(shù)據(jù)對(duì)象構(gòu)建和數(shù)據(jù)運(yùn)算

任務(wù)4.4層次化索引操作pandas的索引分層索引MultiIndex數(shù)據(jù)源小費(fèi)數(shù)據(jù)集tipsSeries的多層索引MultiIndexSeries有多層索引怎樣篩選數(shù)據(jù)DataFrame的多層索引MultiIndex

DataFrame有多層索引怎樣篩選數(shù)據(jù)pandas的索引pandas的索引:負(fù)責(zé)管理軸標(biāo)簽和其他如軸名稱等元數(shù)據(jù)。構(gòu)建Series或DataFrame時(shí),所用到的任何數(shù)組或其他序列的標(biāo)簽都會(huì)被轉(zhuǎn)換成一個(gè)Index。Pandas的數(shù)據(jù)處理:pandas作為python中非常重要的數(shù)據(jù)處理工具,它提供了很多靈活的數(shù)學(xué)和統(tǒng)計(jì)方法。在數(shù)據(jù)處理中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行索引的轉(zhuǎn)換,以適應(yīng)不同的統(tǒng)計(jì)和作圖的需要。分層索引MultiIndexPandas高維數(shù)據(jù)結(jié)構(gòu):?Pandas庫(kù)的名字來(lái)源于其中3種主要數(shù)據(jù)結(jié)構(gòu)開(kāi)頭字母的縮寫,Panel、Dataframe、Series,其中Series表示一維數(shù)據(jù),Dataframe表示二維數(shù)據(jù),Panel表示三維數(shù)據(jù)。當(dāng)數(shù)據(jù)高于二維時(shí),我們一般用包含多層級(jí)索引的Dataframe進(jìn)行表示,而不是使用Panel。原因是使用多層級(jí)索引展示數(shù)據(jù)更加直觀,操作數(shù)據(jù)更加靈活,并且可以表示3維,4維乃至任意維度的數(shù)據(jù)。MultiIndex:層次化索引對(duì)象,表示單個(gè)軸上的多層索引,可以看做由原數(shù)組組成的數(shù)組。MultiIndex可以理解為堆疊的一種索引結(jié)構(gòu),官方文檔提及到它為一些相當(dāng)復(fù)雜的數(shù)據(jù)分析和操作打開(kāi)了大門,尤其是在處理高維數(shù)據(jù)的時(shí)候顯得十分便利。從本質(zhì)上講

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論