




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
大數(shù)據(jù)導(dǎo)論ndarray的運(yùn)算與標(biāo)量的運(yùn)算
一元函數(shù)運(yùn)算
二元函數(shù)運(yùn)算ndarray數(shù)組的運(yùn)算數(shù)組與標(biāo)量之間的運(yùn)算:作用于數(shù)組的每一個(gè)元素Numpy數(shù)組運(yùn)算:一元函數(shù)(1)對ndarray中的數(shù)據(jù)執(zhí)行元素級運(yùn)算的函數(shù)函數(shù)說明np.abs(x)計(jì)算數(shù)組各元素的絕對值np.sqrt(x)計(jì)算數(shù)組各元素的平方根np.square(x)計(jì)算數(shù)組各元素的平方np.log(x)np.log10(x)np.log2(x)計(jì)算數(shù)組各元素的自然對數(shù)、10底對數(shù)和2底對數(shù)np.ceil(x)np.floor(x)計(jì)算數(shù)組各元素的ceiling值或floor值Numpy數(shù)組運(yùn)算:一元函數(shù)(2)對ndarray中的數(shù)據(jù)執(zhí)行元素級運(yùn)算的函數(shù)函數(shù)說明np.rint(x)計(jì)算數(shù)組各元素的四舍五入值np.cos(x)np.sin(x)np.tan(x)計(jì)算數(shù)組各元素的三角函數(shù)np.exp(x)計(jì)算數(shù)組各元素的指數(shù)值np.sign(x)計(jì)算數(shù)組各元素的符號組:1(+),0,-1(-)Numpy數(shù)組運(yùn)算:一元函數(shù)——示例Numpy數(shù)組運(yùn)算:二元函數(shù)函數(shù)說明+-*/**兩個(gè)數(shù)組各元素進(jìn)行對應(yīng)運(yùn)算np.maximum(x,y)np.minimum(x,y)元素級的最大值/最小值計(jì)算><>=<===!=算術(shù)比較,產(chǎn)生布爾型數(shù)組Numpy數(shù)組運(yùn)算:二元函數(shù)——舉例Numpy數(shù)組的轉(zhuǎn)置——ndarray的特殊T屬性Numpy的文件讀取操作np.savetxt():將Numpy數(shù)組保存到磁盤中np.loadtxt():從磁盤中讀取數(shù)據(jù)導(dǎo)Numpy中Numpy的文件讀取操作寫入函數(shù):np.savetxt(frame,
array,
fmt='%.18e',
delimiter=None)?frame
:
文件、字符串或產(chǎn)生器,可以是.gz或.bz2的壓縮文件?array
:
存入文件的數(shù)組?fmt:
寫入文件的格式,例如:%d
%.2f
%.18e?delimiter
:
分割字符串,默認(rèn)是任何空格CSV
(Comma‐Separated
Value,逗號分隔值)文件CSV是一種常見的文件格式,用來存儲批量數(shù)據(jù)指標(biāo),2020年第一季度,2019年第四季度,2019年第三季度,2019年第二季度國內(nèi)生產(chǎn)總值當(dāng)季值(億元),206504.3,278019.7,252208.7,242573.8國內(nèi)生產(chǎn)總值累計(jì)值(億元),206504.3,990865.1,712845.4,460636.7第一產(chǎn)業(yè)增加值當(dāng)季值(億元),10186.2,27461.6,19798,14437.6第一產(chǎn)業(yè)增加值累計(jì)值(億元),10186.2,70466.7,43005,23207Numpy的文件存儲操作——舉例Numpy的文件讀取操作讀取函數(shù):np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)frame
:
文件、字符串或產(chǎn)生器,可以是.gz或.bz2的壓縮文件dtype:
數(shù)據(jù)類型,可選delimiter
:
分割字符串,默認(rèn)是任何空格unpack
:
如果True,讀入屬性將分別寫入不同變量skiprows:跳過前x行,一般跳過第一行表頭usecols:讀取指定的列,索引,元組類型Numpy的文件讀取操作——舉例課堂小任務(wù)讀取iris數(shù)據(jù)集中的花萼長度數(shù)據(jù)(已保存為csv格式),文件名:iris.csv。路徑位于D:\Data\iris.csv并對其進(jìn)行排序、去重,并求出和、均值、標(biāo)準(zhǔn)差、方差、最小值、最大值。Sepal.LengthCm:花萼長度,單位cm
Sepal.WidthCm:花萼寬度,單位cm
Petal.LengthCm:花瓣長度,單位cm
Petal.WidthCm;花瓣寬度,單位cm
Species:鳶尾花種類.第一步:讀入數(shù)據(jù)第二步:排序、去重,并求出和、均值、標(biāo)準(zhǔn)差、方差、最小值、最大值numpy練習(xí)11、創(chuàng)建一個(gè)5x5的二維數(shù)組,其中邊界值為1,其余值為0;代碼如下:2.使用數(shù)字0將一個(gè)全為1的5x5二維數(shù)組包圍,效果如下:代碼如下:3.創(chuàng)建一個(gè)10x10的二維數(shù)組,并使得1和0沿對角線間隔放置,效果如下:代碼如下:numpy練習(xí)24、創(chuàng)建一個(gè)0-10的一維數(shù)組,并將(1,9]之間的數(shù)全部反轉(zhuǎn)成負(fù)數(shù),效果如下:array([0,1,-2,-3,-4,-5,-6,-7,-8,-9,10])代碼如下:5.創(chuàng)建一個(gè)5x5的矩陣,其中每行的數(shù)值范圍從1到5,效果如下:array([[1.,2.,3.,4.,5.],[1.,2.,3.,4.,5.],[1.,2.,3.,4.,5.],[1.,2.,3.,4.,5.],[1.,2.,3.,4.,5.]])代碼如下:6.創(chuàng)建一個(gè)長度為5的一維數(shù)組,并將其中最大值替換成0代碼如下:numpy練習(xí)37.將二維數(shù)組的前兩行進(jìn)行順序交換,效果如下:交換前[[01234][56789][1011121314][1516171819][2021222324]]交換后[[56789][01234][1011121314][1516171819][2021222324]]代碼如下:8、找出給定一維數(shù)組中非0元素的位置索引代碼如下:9.找出數(shù)組中缺失值的總數(shù)及所在位置,案例如下:array([[0.8,0.25,0.74,0.05,0.24,0.16,0.63,0.62,0.89,0.85],[0.61,0.76,0.26,0.3,0.82,0.74,0.96,0.64,0.58,0.06],[0.78,0.38,0.19,0.68,0.75,0.91,0.13,0.24,0.98,0.21],[0.47,0.12,0.34,0.06,0.46,0.69,0.1,nan,0.27,0.92],[0.83,0.01,0.63,0.15,0.52,0.52,0.02,0.,0.74,0.59],[0.56,0.66,0.15,nan,0.26,0.88,0.15,0.57,0.61,0.35],[0.33,0.58,0.06,0.94,0.58,0.53,0.97,0.02,0.32,nan],[0.84,0.71,0.65,0.42,0.44,0.96,0.37,0.65,0.6,0.17],[0.04,0.94,0.92,nan,0.7,0.38,0.28,0.45,0.35,0.93],[0.38,0.69,0.43,0.01,0.67,0.46,0.73,0.99,0.94,0.45]])缺失值總數(shù):4缺失值索引:(array([3,5,6,8]),array([7,3,9,3]))代碼如下:生成20人,每人7門課程的成績?nèi)蝿?wù)一獲取所有學(xué)生成績中,每一科目中出現(xiàn)過的分?jǐn)?shù)(因?yàn)榭赡苡蟹謹(jǐn)?shù)相同,但是只出一次),每一科目的單科成績排名以及最高分任務(wù)一——解答生成20人,每人7門課程的成績?nèi)蝿?wù)二每個(gè)學(xué)生的平均分排名以及獲取平均分最高分學(xué)生序號——學(xué)生平均分成績排名任務(wù)二——解答生成20人,每人7門課程的成績?nèi)蝿?wù)三繪制20個(gè)同學(xué)的平均成績條形圖任務(wù)三——解答任務(wù)三——解答生成20人,每人7門課程的成績?nèi)蝿?wù)四計(jì)算及格率,以及繪制及格所占的餅狀圖任務(wù)四——解答任務(wù)四——解答Pandas統(tǒng)計(jì)分析目錄01Pandas庫的理解02Series類型的基本操作
03Pandas庫的DataFrame類型
04
Pandas庫索引操作05Pandas庫的數(shù)據(jù)類型操作
06Pandas庫的數(shù)據(jù)排序和統(tǒng)計(jì)函數(shù)Pandas庫的理解Pandas介紹Series類型Series類型的創(chuàng)建Pandas庫的理解(1)importpandas
aspd引入模塊Pandas庫的理解(2)兩種數(shù)據(jù)類型:Series,DataFramePandas庫的理解(3)NumpyPandas基礎(chǔ)數(shù)據(jù)類型關(guān)注數(shù)據(jù)的結(jié)構(gòu)表達(dá)維度:數(shù)據(jù)間關(guān)系擴(kuò)展數(shù)據(jù)類型關(guān)注數(shù)據(jù)的應(yīng)用表達(dá)數(shù)據(jù)與索引間關(guān)系Pandas庫的Series類型(1)Series是一種類似于一維數(shù)組的對象,它由一組數(shù)據(jù)(各種Numpy數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。值索引Pandas庫的Series類型(2)自定義索引Series類型的創(chuàng)建方法Series類型可以由如下類型創(chuàng)建:Python列表,index與列表元素個(gè)數(shù)一致標(biāo)量值,index表達(dá)Series類型的尺寸Python字典,鍵值對中的“鍵”是索引,index從字典中進(jìn)行選擇操作ndarray,索引和數(shù)據(jù)都可以通過ndarray類型創(chuàng)建其他函數(shù),range()函數(shù)等Series類型的創(chuàng)建方法——從標(biāo)量值創(chuàng)建Series類型的創(chuàng)建方法——從字典類型創(chuàng)建Series類型的創(chuàng)建方法——從ndarray類型創(chuàng)建這也是非常常用的創(chuàng)建方式Series類型的基本操作基本操作概述
index和values操作
類似ndarray類型
類似Python字典操作Series類型的基本操作Series類型包括index和values兩部分Series類型的操作類似ndarray類型Series類型的操作類似Python字典類型Series類型的基本操作——index和values操作(1)Series類型的基本操作——index和values操作(2)自動索引和基本索引并存,兩種索引都可以使用,但在使用的時(shí)候要么全是自動索引、要么全是基本索引。Series類型的基本操作——類似ndarray類型Series類型的操作類似ndarray類型:索引方法相同,采用[]Numpy中運(yùn)算和操作可用于Series類型可以通過自定義索引的列表進(jìn)行切片可以通過自動索引進(jìn)行切片,如果存在自定義索引,則一同被切片Series類型的基本操作——類似ndarray類型的切片和運(yùn)算Series類型的基本操作——類似Python字典類型類似Python字典操作方式:通過自定義索引訪問保留字in操作使用.get()方法Series類型的基本操作——通過index修改values的值通過基本索引和自動索引切片對values值進(jìn)行修改并立即生效。Pandas庫索引操作索引的理解索引類型的常用方法
重新索引Pandas庫——索引Series和DataFrame的索引是Index類型Index對象是不可修改類型Pandas庫——索引類型的常用方法方法說明.append(idx)連接另一個(gè)Index對象,產(chǎn)生新的Index對象.diff(idx)計(jì)算差集,產(chǎn)生新的Index對象.intersection(idx)計(jì)算交集.union(idx)計(jì)算并集.delete(loc)刪除Loc位置處的元素.insert(loc,e)在loc位置增加一個(gè)元素ePandas庫——索引類型的方法使用Pandas庫——刪除指定索引對象.drop()能夠刪除Series和DataFrame指定行或列索引Pandas庫的數(shù)據(jù)類型操作——重新索引.reindex()能夠改變或重排Series和DataFrame索引Pandas庫的數(shù)據(jù)類型操作——重新索引reindex函數(shù)參數(shù)參數(shù)說明index,columns新的行列自定義索引fill_value重新索引中,用于填充缺失位置的值method填充方法,ffill當(dāng)前值向前填充,bfill向后填充limit最大填充量copy默認(rèn)True,生成新的對象;False時(shí),新舊相等不復(fù)制Pandas庫的數(shù)據(jù)類型操作——重新索引舉例Pandas庫的數(shù)據(jù)類型操作算術(shù)運(yùn)算比較運(yùn)算Pandas庫數(shù)據(jù)的算術(shù)運(yùn)算算術(shù)運(yùn)算根據(jù)行列索引,補(bǔ)齊后運(yùn)算,運(yùn)算默認(rèn)產(chǎn)生浮點(diǎn)數(shù)補(bǔ)齊時(shí)缺項(xiàng)填充NaN(空值)二維和一維、一維和零維間為廣播運(yùn)算采用+
‐*
/符號進(jìn)行的二元運(yùn)算產(chǎn)生新的對象Pandas庫的數(shù)據(jù)的算術(shù)運(yùn)算——+、-、*、/符號運(yùn)算Pandas庫的數(shù)據(jù)的算術(shù)運(yùn)算——加減乘除的方法形式的運(yùn)算方法說明.add(d,**argws)類型間加法運(yùn)算,可選參數(shù).sub(d,**argws)類型間減法運(yùn)算,可選參數(shù).mul(d,**argws)類型間乘法運(yùn)算,可選參數(shù).div(d,**argws)類型間除法運(yùn)算,可選參數(shù)Pandas庫的數(shù)據(jù)的算術(shù)運(yùn)算——加減乘除的方法形式的運(yùn)算(1)Pandas庫的數(shù)據(jù)的算術(shù)運(yùn)算——加減乘除的方法形式的運(yùn)算(2)Pandas庫數(shù)據(jù)的比較運(yùn)算比較運(yùn)算只能比較相同索引的元素,不進(jìn)行補(bǔ)齊二維和一維、一維和零維間為廣播運(yùn)算采用>
<
>=
<=
==
!=等符號進(jìn)行的二元運(yùn)算產(chǎn)生布爾對象Pandas庫的數(shù)據(jù)的比較運(yùn)算(1)Pandas庫的數(shù)據(jù)的比較運(yùn)算(2)
讀寫文本文件1.文本文件讀取使用read_table來讀取文本文件。pandas.read_table(filepath,sep=’\t’)使用read_csv函數(shù)來讀取csv文件。pandas.read_csv(filepath_or_buffer)csv是一種逗號分隔的文件格式,因?yàn)槠浞指舴灰欢ㄊ嵌禾枺直环Q為字符分隔文件,文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。使用read_table來讀取文本文件內(nèi)容實(shí)操。1.文本文件讀取encoding代表文件的編碼格式,常用的編碼有utf-8、utf-16、gbk、gb2312、gb18030等。如果編碼指定錯(cuò)誤數(shù)據(jù)將無法讀取,IPython解釋器會報(bào)解析錯(cuò)誤。使用read_table來讀取csv文件內(nèi)容實(shí)操1.文本文件讀取read_table和read_csv函數(shù)中的sep參數(shù)是指定文本的分隔符的,如果分隔符指定錯(cuò)誤,在讀取數(shù)據(jù)的時(shí)候,每一行數(shù)據(jù)將連成一片。2.文本文件儲存文本文件的存儲和讀取類似,結(jié)構(gòu)化數(shù)據(jù)可以通過pandas中的to_csv函數(shù)實(shí)現(xiàn)以csv文件格式存儲文件。DataFrame.to_csv(path_or_buf=None,sep=’,’)數(shù)據(jù)庫數(shù)據(jù)讀取1.讀寫數(shù)據(jù)庫數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)讀取pandas提供了讀取與存儲關(guān)系型數(shù)據(jù)庫數(shù)據(jù)的函數(shù)與方法。除了pandas庫外,還需要使用SQLAlchemy庫建立對應(yīng)的數(shù)據(jù)庫連接。SQLAlchemy配合相應(yīng)數(shù)據(jù)庫的Python連接工具(例如MySQL數(shù)據(jù)庫需要安裝mysqlclient或者pymysql庫),使用create_engine函數(shù),建立一個(gè)數(shù)據(jù)庫連接。creat_engine中填入的是一個(gè)連接字符串。在使用Python的SQLAlchemy時(shí),MySQL和Oracle數(shù)據(jù)庫連接字符串的格式如下:
數(shù)據(jù)庫產(chǎn)品名+連接工具名://用戶名:密碼@數(shù)據(jù)庫IP地址:數(shù)據(jù)庫端口號/數(shù)據(jù)庫名稱?charset=數(shù)據(jù)庫數(shù)據(jù)編碼read_sql既能夠讀取數(shù)據(jù)庫中的某一個(gè)表,也能夠?qū)崿F(xiàn)查詢操作。
pandas.read_sql(sql,con,index_col=None,coerce_float=True,columns=None)read_sql從數(shù)據(jù)庫讀取數(shù)據(jù)實(shí)操1.讀寫數(shù)據(jù)庫數(shù)據(jù)2.數(shù)據(jù)庫數(shù)據(jù)存儲DataFrame.to_sql(name,con,if_exists=’fail’,index=True)參數(shù)名稱說明name接收string。代表數(shù)據(jù)庫表名。無默認(rèn)。con接收數(shù)據(jù)庫連接。無默認(rèn)。if_exists接收fail,replace,append。fail表示如果表名存在則不執(zhí)行寫入操作;replace表示如果存在,將原數(shù)據(jù)庫表刪除,再重新創(chuàng)建;append則表示在原數(shù)據(jù)庫表的基礎(chǔ)上追加數(shù)據(jù)。默認(rèn)為fail。index接收boolean。表示是否將行索引作為數(shù)據(jù)傳入數(shù)據(jù)庫。默認(rèn)True。1.讀寫數(shù)據(jù)庫數(shù)據(jù)DataFrame.to_sql(name,con,if_exists=’fail’,index=True)寫入數(shù)據(jù)庫實(shí)操1.讀寫數(shù)據(jù)庫數(shù)據(jù)橫向合并數(shù)據(jù)1.橫向表堆疊橫向堆疊,即將兩個(gè)表在X軸向拼接在一起,可以使用concat函數(shù)完成,concat函數(shù)的基本語法如下:pandas.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,copy=True)常用參數(shù)如下所示。參數(shù)名稱說明objs接收多個(gè)Series,DataFrame,Panel的組合。表示參與鏈接的pandas對象的列表的組合。無默認(rèn)。axis接收0或1。表示連接的軸向,默認(rèn)為0。join接收inner或outer。表示其他軸向上的索引是按交集(inner)還是并集(outer)進(jìn)行合并。默認(rèn)為outer。axis=1代表橫向堆疊,join方式為行索引的內(nèi)連接或外連接1.橫向表堆疊axis=1代表橫向堆疊,join方式為行索引的內(nèi)連接或外連接1.橫向表堆疊當(dāng)axis=1的時(shí)候,concat做行對齊,然后將不同列名稱的兩張或多張表合并。當(dāng)兩個(gè)表索引不完全一樣時(shí),可以使用join參數(shù)選擇是內(nèi)連接還是外連接。在內(nèi)連接的情況下,僅僅返回索引重疊部分。在外連接的情況下,則顯示索引的并集部分?jǐn)?shù)據(jù),不足的地方則使用空值填補(bǔ)。當(dāng)兩張表完全一樣時(shí),不論join參數(shù)取值是inner或者outer,結(jié)果都是將兩個(gè)表完全按照X軸拼接起來。1.橫向表堆疊縱向合并數(shù)據(jù)1.縱向堆疊——concat函數(shù)使用concat函數(shù)時(shí),在默認(rèn)情況下,即axis=0時(shí),concat做列對齊,將不同行索引的兩張或多張表縱向合并。在兩張表的列名并不完全相同的情況下,可join參數(shù)取值為inner時(shí),返回的僅僅是列名交集所代表的列,取值為outer時(shí),返回的是兩者列名的并集所代表的列,其原理示意如圖。不論join參數(shù)取值是inner或者outer,結(jié)果都是將兩個(gè)表完全按照Y軸拼接起來axis=0代表縱向堆疊,join方式為列索引的內(nèi)連接或外連接1.縱向堆疊——concat函數(shù)axis=0代表縱向堆疊,join方式為列索引的內(nèi)連接或外連接1.縱向堆疊——concat函數(shù)append方法也可以用于縱向合并兩張表。但是append方法實(shí)現(xiàn)縱向表堆疊有一個(gè)前提條件,那就是兩張表的列名需要完全一致。append方法的基本語法如下pandas.DataFrame.append(self,other,ignore_index=False,verify_integrity=False)。常用參數(shù)如下所示。參數(shù)名稱說明other接收DataFrame或Series。表示要添加的新數(shù)據(jù)。無默認(rèn)。ignore_index接收boolean。如果輸入True,會對新生成的DataFrame使用新的索引(自動產(chǎn)生)而忽略原來數(shù)據(jù)的索引。默認(rèn)為False。verify_integrity接收boolean。如果輸入True,那么當(dāng)ignore_index為False時(shí),會檢查添加的數(shù)據(jù)索引是否沖突,如果沖突,則會添加失敗。默認(rèn)為False。1.縱向堆疊——append方法1.縱向堆疊——append方法merge合并數(shù)據(jù)主鍵合并數(shù)據(jù)主鍵合并,即通過一個(gè)或多個(gè)鍵將兩個(gè)數(shù)據(jù)集的行連接起來,類似于SQL中的JOIN。針對同一個(gè)主鍵存在兩張包含不同字段的表,將其根據(jù)某幾個(gè)字段一一對應(yīng)拼接起來,結(jié)果集列數(shù)為兩個(gè)元數(shù)據(jù)的列數(shù)和減去連接鍵的數(shù)量。主鍵合并——merge函數(shù)和數(shù)據(jù)庫的join一樣,merge函數(shù)也有左連接(left)、右連接(right)、內(nèi)連接(inner)和外連接(outer),但比起數(shù)據(jù)庫SQL語言中的join和merge函數(shù)還有其自身獨(dú)到之處,例如可以在合并過程中對數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行排序等。pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=('_x','_y'),copy=True,indicator=False)可根據(jù)merge函數(shù)中的參數(shù)說明,并按照需求修改相關(guān)參數(shù),就可以多種方法實(shí)現(xiàn)主鍵合并。主鍵合并——merge函數(shù)默認(rèn)連接方式為inner。left_on表示left參數(shù)接收數(shù)據(jù)用于合并的主鍵。right_on表示right參數(shù)接收數(shù)據(jù)用于合并的主鍵主鍵合并——merge函數(shù)左連接(left)、右連接(right)、內(nèi)連接(inner)和外連接(outer)主鍵合并——merge函數(shù)Excel文件數(shù)據(jù)讀取1.Excel文件讀取pandas提供了read_excel函數(shù)來讀取“xls”“xlsx”兩種Excel文件。pandas.read_excel(io,sheetname=0,)read_excel讀Excel文件實(shí)操1.Excel文件讀取2.Excel文件儲存將文件存儲為Excel文件,可以使用to_excel方法。其語法格式如下:DataFrame.to_excel(excel_writer=None,sheetname=None’,na_rep=”,header=True,index=True,index_label=None,mode=’w’,encoding=None)to_csv方法的常用參數(shù)基本一致,區(qū)別之處在于指定存儲文件的文件路徑參數(shù)名稱為excel_writer,并且沒有sep參數(shù),增加了一個(gè)sheetnames參數(shù)用來指定存儲的Excelsheet的名稱,默認(rèn)為sheet1。to_excel寫入Excel文件實(shí)操2.Excel文件儲存使用分組聚合進(jìn)行組內(nèi)計(jì)算使用groupby方法拆分?jǐn)?shù)據(jù)該方法提供的是分組聚合步驟中的拆分功能,能根據(jù)索引或字段對數(shù)據(jù)進(jìn)行分組。其常用參數(shù)與使用格式如下:
DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,**kwargs)GroupBy對象常用的描述性統(tǒng)計(jì)方法用groupby方法分組后的結(jié)果并不能直接查看,而是被存在內(nèi)存中,輸出的是內(nèi)存地址。實(shí)際上分組后的數(shù)據(jù)對象GroupBy類似Series與DataFrame,是pandas提供的一種對象。GroupBy對象常用的描述性統(tǒng)計(jì)方法如下。方法名稱說明方法名稱說明count計(jì)算分組的數(shù)目,包括缺失值。cumcount對每個(gè)分組中組員的進(jìn)行標(biāo)記,0至n-1。head返回每組的前n個(gè)值。size返回每組的大小。max返回每組最大值。min返回每組最小值。mean返回每組的均值。std返回每組的標(biāo)準(zhǔn)差。median返回每組的中位數(shù)。sum返回每組的和。GroupBy對象常用的描述性統(tǒng)計(jì)方法使用agg方法聚合數(shù)據(jù)agg,aggregate方法都支持對每個(gè)分組應(yīng)用某函數(shù),包括Python內(nèi)置函數(shù)或自定義函數(shù)。同時(shí)這兩個(gè)方法能夠也能夠直接對DataFrame進(jìn)行函數(shù)應(yīng)用操作。在正常使用過程中,agg函數(shù)和aggregate函數(shù)對DataFrame對象操作時(shí)功能幾乎完全相同,因此只需要掌握其中一個(gè)函數(shù)即可。它們的參數(shù)說明如下表。
DataFrame.agg(func,axis=0,*args,**kwargs)
DataFrame.aggregate(func,axis=0,*args,**kwargs)參數(shù)名稱說明func接收list、dict、function。表示應(yīng)用于每行/每列的函數(shù)。無默認(rèn)。axis接收0或1。代表操作的軸向。默認(rèn)為0。agg方法求統(tǒng)計(jì)量可以使用agg方法一次求出當(dāng)前數(shù)據(jù)中課時(shí)數(shù)和班級人數(shù)的總和與均值,如df[['課時(shí)數(shù)','班級人數(shù)']].agg([np.sum,np.mean])。對于某個(gè)字段希望只做求均值操作,而對另一個(gè)字段則希望只做求和操作,可以使用字典的方式,將兩個(gè)字段名分別作為key,然后將NumPy庫的求和與求均值的函數(shù)分別作為value,如df.agg({'課時(shí)數(shù)':np.sum,'班級人數(shù)':np.mean})。在某些時(shí)候還希望求出某個(gè)字段的多個(gè)統(tǒng)計(jì)量,某些字段則只需要求一個(gè)統(tǒng)計(jì)量,此時(shí)只需要將字典對應(yīng)key的value變?yōu)榱斜?,列表元素為多個(gè)目標(biāo)的統(tǒng)計(jì)量即可,如detail.agg({'counts':np.sum,'amounts':[np.mean,np.sum]}))agg方法求統(tǒng)計(jì)量使用分組聚合進(jìn)行組內(nèi)計(jì)算(2)agg方法與自定義的函數(shù)在agg方法可傳入自定義的函數(shù)。使用自定義函數(shù)實(shí)現(xiàn)班級個(gè)數(shù)乘以課時(shí)數(shù):axis=1,針對這一行進(jìn)行操作;默認(rèn)情況下axis=0,針對的是這一列使用該函數(shù)agg方法與自定義的函數(shù)使用apply方法聚合數(shù)據(jù)apply方法類似agg方法能夠?qū)⒑瘮?shù)應(yīng)用于每一列。不同之處在于apply方法相比agg方法傳入的函數(shù)只能夠作用于整個(gè)DataFrame或者Series,而無法像agg一樣能夠?qū)Σ煌侄危瑧?yīng)用不同函數(shù)獲取不同結(jié)果。DataFrame.apply(func,axis=0,broadcast=False,raw=False,reduce=None,args=(),**kwds)參數(shù)名稱說明func接收functions。表示應(yīng)用于每行/列的函數(shù)。無默認(rèn)。axis接收0或1。代表操作的軸向。默認(rèn)為0。使用apply方法聚合數(shù)據(jù)使用transform方法聚合數(shù)據(jù)transform方法能夠?qū)φ麄€(gè)DataFrame的所有元素進(jìn)行操作。且transform方法只有一個(gè)參數(shù)“func”,表示對DataFrame操作的函數(shù)。同時(shí)transform方法還能夠?qū)ataFrame分組后的對象GroupBy進(jìn)行操作,可以實(shí)現(xiàn)組內(nèi)離差標(biāo)準(zhǔn)化等操作。小結(jié)1、agg、apply、transform三個(gè)函數(shù)都可以實(shí)現(xiàn)聚合數(shù)據(jù)的功能;2、都支持自定義函數(shù);3、agg函數(shù)參數(shù)可以是字典,針對不同的列使用不同的函數(shù);而apply、transform函數(shù)針對所有的列都使用同一個(gè)函數(shù)創(chuàng)建透視表使用povit_table函數(shù)創(chuàng)建透視表pivot_table函數(shù)常用參數(shù)及其說明利用pivot_table函數(shù)可以實(shí)現(xiàn)透視表,pivot_table()函數(shù)的常用參數(shù)及其使用格式如下:pands.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,dropna=True,margins_name='All')參數(shù)名稱說明data接收DataFrame。表示創(chuàng)建表的數(shù)據(jù)。無默認(rèn)。values接收字符串。用于指定想要聚合的數(shù)據(jù)字段名,默認(rèn)使用全部數(shù)據(jù)。默認(rèn)為None。index接收string或list。表示行分組鍵。默認(rèn)為None。columns接收string或list。表示列分組鍵。默認(rèn)為None。aggfunc接收functions。表示聚合函數(shù)。默認(rèn)為mean。margins接收boolearn。表示匯總(Total)功能的開關(guān),設(shè)為True后結(jié)果集中會出現(xiàn)名為“ALL”的行和列。默認(rèn)為True。dropna接收boolearn。表示是否刪掉全為NaN的列。默認(rèn)為False。
在不特殊指定聚合函數(shù)aggfunc時(shí),會默認(rèn)使用numpy.mean進(jìn)行聚合運(yùn)算,numpy.mean會自動過濾掉非數(shù)值類型數(shù)據(jù)。使用povit_table函數(shù)創(chuàng)建透視表可以通過指定aggfunc參數(shù)修改聚合函數(shù)。使用povit_table函數(shù)創(chuàng)建透視表和groupby方法分組的時(shí)候相同,pivot_table函數(shù)在創(chuàng)建透視表的時(shí)候分組鍵index可以有多個(gè)。使用povit_table函數(shù)創(chuàng)建透視表清洗數(shù)據(jù)檢測與處理重復(fù)值pandas提供了一個(gè)名為drop_duplicates的去重方法。該方法只對DataFrame或者Series類型有效。這種方法不會改變數(shù)據(jù)原始排列,該方法不僅支持單一特征的數(shù)據(jù)去重,還能夠依據(jù)DataFrame的其中一個(gè)或者幾個(gè)特征進(jìn)行去重操作。pandas.DataFrame(Series).drop_duplicates(self,subset=None,keep='first',inplace=False)參數(shù)名稱說明subset接收string或sequence。表示進(jìn)行去重的列。默認(rèn)為None,表示全部列。keep接收特定string。表示重復(fù)時(shí)保留第幾個(gè)數(shù)據(jù)。First:保留第一個(gè)。Last:保留最后一個(gè)。False:只要有重復(fù)都不保留。默認(rèn)為first。inplace接收boolean。表示是否在原表上進(jìn)行操作。默認(rèn)為False。檢測與處理重復(fù)值檢測與處理重復(fù)值利用isnull或notnull找到缺失值數(shù)據(jù)中的某個(gè)或某些特征的值是不完整的,這些值稱為缺失值。pandas提供了識別缺失值的方法isnull以及識別非缺失值的方法notnull,這兩種方法在使用時(shí)返回的都是布爾值True和False。結(jié)合sum函數(shù)和isnull、notnull函數(shù),可以檢測數(shù)據(jù)中缺失值的分布以及數(shù)據(jù)中一共含有多少缺失值。isnull和notnull之間結(jié)果正好相反,因此使用其中任意一個(gè)都可以判斷出數(shù)據(jù)中缺失值的位置。利用isnull或notnull找到缺失值利用isnull或notnull找到缺失值空值的處理方法1.刪除法pandas中提供了簡便的刪除缺失值的方法dropnapandas.DataFrame.dropna(self,axis=0,how='any',thresh=None,subset=None,inplace=False)常用參數(shù)及其說明如下:參數(shù)名稱說明axis接收0或1。表示軸向,0為刪除觀測記錄(行),1為刪除特征(列)。默認(rèn)為0。how接收特定string。表示刪除的形式。any表示只要有缺失值存在就執(zhí)行刪除操作。all表示當(dāng)且僅當(dāng)全部為缺失值時(shí)執(zhí)行刪除操作。默認(rèn)為any。subset接收類array數(shù)據(jù)。表示進(jìn)行去重的列∕行。默認(rèn)為None,表示所有列/行。inplace接收boolean。表示是否在原表上進(jìn)行操作。默認(rèn)為False。1.刪除法2.替換法替換法是指用一個(gè)特定的值替換缺失值。pandas庫中提供了缺失值替換的方法名為fillna,其基本語法如下。pandas.DataFrame.fillna(value=None,method=None,axis=None,inplace=False,limit=None)常用參數(shù)及其說明如下:參數(shù)名稱說明value接收scalar,dict,Series或者DataFrame。表示用來替換缺失值的值。無默認(rèn)。method接收特定string。backfill或bfill表示使用下一個(gè)非缺失值填補(bǔ)缺失值。pad或ffill表示使用上一個(gè)非缺失值填補(bǔ)缺失值。默認(rèn)為None。axis接收0或1。表示軸向。默認(rèn)為1。inplace接收boolean。表示是否在原表上進(jìn)行操作。默認(rèn)為False。limit接收int。表示填補(bǔ)缺失值個(gè)數(shù)上限,超過則不進(jìn)行填補(bǔ)。默認(rèn)為None。2.替換法標(biāo)準(zhǔn)化數(shù)據(jù)離差標(biāo)準(zhǔn)化數(shù)據(jù)
離差標(biāo)準(zhǔn)化是對原始數(shù)據(jù)的一種線性變換,結(jié)果是將原始數(shù)據(jù)的數(shù)值映射都[0,1]區(qū)間之間,轉(zhuǎn)換公式為:離差標(biāo)準(zhǔn)化數(shù)據(jù)
離差標(biāo)準(zhǔn)化數(shù)據(jù)
標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化數(shù)據(jù)標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化也叫零均值標(biāo)準(zhǔn)化或分?jǐn)?shù)標(biāo)準(zhǔn)化,經(jīng)過該方法處理的數(shù)據(jù)均值為0,標(biāo)準(zhǔn)差為1,轉(zhuǎn)化公式為:標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化數(shù)據(jù)小數(shù)定標(biāo)標(biāo)準(zhǔn)化數(shù)據(jù)通過移動數(shù)據(jù)的小數(shù)位數(shù),將數(shù)據(jù)映射到區(qū)間[-1,1]之間,移動的小數(shù)位數(shù)取決于數(shù)據(jù)絕對值得最大值。轉(zhuǎn)化公式如下:小數(shù)定標(biāo)標(biāo)準(zhǔn)化數(shù)據(jù)轉(zhuǎn)換與處理時(shí)間序列數(shù)據(jù)轉(zhuǎn)換字符串時(shí)間為標(biāo)準(zhǔn)時(shí)間Timestamp類型在多數(shù)情況下,對時(shí)間類型數(shù)據(jù)進(jìn)行分析的前提就是將原本為字符串的時(shí)間轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間類型。Timestamp類常用屬性在多數(shù)涉及時(shí)間相關(guān)的數(shù)據(jù)處理,統(tǒng)計(jì)分析的過程中,需要提取時(shí)間中的年份,月份等數(shù)據(jù)。使用對應(yīng)的Timestamp類屬性就能夠?qū)崿F(xiàn)這一目的。結(jié)合Python列表推導(dǎo)式,可以實(shí)現(xiàn)對DataFrame某一列時(shí)間信息數(shù)據(jù)的提取。屬性名稱說明year年month月day日hour小時(shí)minute分鐘second秒提取時(shí)間中的年份,月份、小時(shí)等數(shù)據(jù)。Timestamp類常用屬性加減時(shí)間數(shù)據(jù)Timedelta是時(shí)間相關(guān)的類中的一個(gè)異類,不僅能夠使用正數(shù),還能夠使用負(fù)數(shù)表示單位時(shí)間,例如1秒,2分鐘,3小時(shí)等。使用Timedelta類,配合常規(guī)的時(shí)間相關(guān)類能夠輕松實(shí)現(xiàn)時(shí)間的算術(shù)運(yùn)算。目前Timedelta函數(shù)中時(shí)間周期中沒有年和月。所有周期名稱,對應(yīng)單位及其說明如下表所示。周期名稱單位說明周期名稱單位說明weeks無星期secondss秒daysD天millisecondsms毫秒hoursh小時(shí)microsecondsus微妙minutesm分nanosecondsns納秒加減時(shí)間數(shù)據(jù)加減時(shí)間數(shù)據(jù)Pandas訓(xùn)練01練習(xí)011.將下面的字典創(chuàng)建為DataFramedata={"grammer":["Python","C","Java","GO",np.nan,"SQL","PHP","Python"],"score":[1,2,np.nan,4,5,6,7,10]}練習(xí)01——解答練習(xí)022.提取含有字符串"Python"的行3.輸出df的所有列名練習(xí)03練習(xí)044.修改第二列列名為'popularity'練習(xí)055.統(tǒng)計(jì)grammer列中每種編程語言出現(xiàn)的次數(shù)練習(xí)066.將空值用上下值的平均值填充Pandas訓(xùn)練02練習(xí)077.提取popularity列中值大于3的行練習(xí)088.按照grammer列進(jìn)行去除重復(fù)值練習(xí)099.計(jì)算popularity列平均值練習(xí)1010.將grammer列轉(zhuǎn)換為list練習(xí)1111.將popularity列轉(zhuǎn)換為int練習(xí)1212.將DataFrame保存為EXCELPandas訓(xùn)練03練習(xí)1313.查看數(shù)據(jù)行列數(shù)練習(xí)1414.提取popularity列值大于3小于7的行練習(xí)1515.交換兩列位置練習(xí)1616.提取popularity列最大值所在行練習(xí)1717.查看最后5行數(shù)據(jù)練習(xí)1818.刪除最后一行數(shù)據(jù)Pandas訓(xùn)練04練習(xí)1919.添加一行數(shù)據(jù)['Perl',6.6]練習(xí)2020.對數(shù)據(jù)按照"popularity"列值的大小進(jìn)行排序練習(xí)2121.統(tǒng)計(jì)grammer列每個(gè)字符串的長度練習(xí)2222.讀取本地EXCEL數(shù)據(jù)練習(xí)2323.將數(shù)據(jù)根據(jù)學(xué)歷進(jìn)行分組并計(jì)算平均薪資練習(xí)2424.新增一列根據(jù)salary將數(shù)據(jù)分為三組Pandas訓(xùn)練05練習(xí)2525.按照salary列對數(shù)據(jù)降序排列練習(xí)2626.將createTime列設(shè)置為索引練習(xí)2727.將第8行數(shù)據(jù)添加至末尾練習(xí)2828.將salary列類型轉(zhuǎn)換為浮點(diǎn)數(shù)練習(xí)2929.查看每種學(xué)歷出現(xiàn)的次數(shù)任務(wù)一
企業(yè)收入的多樣性【題目描述】一個(gè)企業(yè)的產(chǎn)業(yè)收入多樣性可以仿照信息熵的概念來定義收入熵指標(biāo):I=?∑i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60974-4:2025 RLV EN Arc welding equipment - Part 4: Periodic inspection and testing
- 2025至2030中國皮膚美容行業(yè)市場發(fā)展分析及競爭格局與投資前景報(bào)告
- 醫(yī)療教育中實(shí)施翻轉(zhuǎn)課堂的策略與方法
- 礦山車隊(duì)安全培訓(xùn)課件
- 飛行檢查培訓(xùn)課件
- 教育建筑中智能電力系統(tǒng)的安全保障措施
- 當(dāng)代教育中游玩耍的元素與心理定價(jià)策略的結(jié)合實(shí)踐
- 創(chuàng)新教育心理策略助力學(xué)生全面發(fā)展
- 教育心理學(xué)在學(xué)生家庭聯(lián)系中的角色
- 提升學(xué)生情感智商助力學(xué)業(yè)成功之路
- 水泥場地改造方案(3篇)
- 資材部安全生產(chǎn)責(zé)任制
- 既有建筑節(jié)能綜合改造項(xiàng)目可行性研究報(bào)告
- 貴州省銅仁市萬山區(qū)2024-2025學(xué)年部編版七年級下學(xué)期6月期末歷史試題(含答案)
- 2025年工程管理基礎(chǔ)知識考試試卷及答案
- 礦山生態(tài)修復(fù)方案
- 開曼群島公司法2024版中文譯本(含2024年修訂主要內(nèi)容)
- GB/T 19741-2005液體食品包裝用塑料復(fù)合膜、袋
- 礦相學(xué)課程設(shè)計(jì) -個(gè)舊錫礦
- 征信查詢委托書(共4篇)
- 勞動防護(hù)用品配備標(biāo)準(zhǔn)(國標(biāo))
評論
0/150
提交評論