




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
引入案例任務分析知識解析案例解析任務實訓實訓評價4.4.1merge()函數(shù)的運用4.4.2join()函數(shù)的運用4.4.3concat()函數(shù)的運用任務4.4利用Pandas進行財務數(shù)據(jù)合并4.4.4append()函數(shù)的運用任務4.4
利用Pandas進行財務數(shù)據(jù)合并任務4.4利用Pandas進行財務數(shù)據(jù)合并引入案例任務分析知識解析到了月初,美創(chuàng)科技有限公司財務人員小王開始對上個月企業(yè)員工的應付工資進行匯總,小王發(fā)現(xiàn)員工的工資數(shù)據(jù)來自兩張Excel表格,分別是企業(yè)員工基本工資表.xlsx、企業(yè)員工加班工資表(位置:E:\file\),如何利用Pandas實現(xiàn)對這兩張表進行合并呢?要想實現(xiàn)不同表格數(shù)據(jù)的合并和連接,就要用到Pandas模塊中的merge()函數(shù)、concat()函數(shù)、join()函數(shù)和append()函數(shù),通過這些函數(shù)實現(xiàn)兩張表或多張表的縱向或橫向連接。分析數(shù)據(jù)往往來源于不同渠道,在進行數(shù)據(jù)分析時經(jīng)常需要融合多方信息,比如將分布在不同表格中的財務數(shù)據(jù)整合到一張表進行數(shù)據(jù)處理,那么在Pandas中,如何將多個表格的數(shù)據(jù)合并或者連接在一起呢?Pandas提供了多種連接、合并的方法,包括merge()函數(shù)、concat()函數(shù)、join()函數(shù)和append()函數(shù),這些函數(shù)均適用于表格數(shù)據(jù)的合并,但適用的場景有所不同。任務4.4利用Pandas進行財務數(shù)據(jù)合并4.4.1merge()函數(shù)的運用Python中merge()函數(shù)的表格連接功能類似于Excel中實現(xiàn)拼接的vlookup()函數(shù),也類似于關系型數(shù)據(jù)庫的連接方式,可以根據(jù)一個或多個鍵(列值)將不同的DateFrame對象連接起來。該函數(shù)的典型應用場景是,兩個DataFrame對象存在相同的列名,根據(jù)列名整合到一張表里面。一、merge()函數(shù)的語法格式及參數(shù)說明merge()函數(shù)的語法格式如下:pandas.merge(left,right,how=’inner’,on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True,suffixes=(’_x’,’_y’),copy=True,indicator=False,validate=None)任務4.4利用Pandas進行財務數(shù)據(jù)合并merge()函數(shù)的參數(shù)及其說明參數(shù)說明left、right接收DataFrame或Series。分別對應合并操作時左邊的DateFrame、右邊的DateFrame。how接收inner、left、right、outer。表示數(shù)據(jù)的連接方式,默認為inner。on接收string或sequence。表示用于連接的列名,必須存在于左右兩個DateFrame中,如果沒有指定且其他參數(shù)也沒有指定,則以兩個DateFrame列名交集作為連接鍵。left_on接收string或sequence。表示左側(cè)DateFrame中用于連接的列名,這個參數(shù)在左、右表中列名不同但代表的含義相同時非常的有用。right_on接收string或sequence。表示右側(cè)DateFrame中用于連接的列名。任務4.4利用Pandas進行財務數(shù)據(jù)合并merge()函數(shù)的參數(shù)及其說明參數(shù)說明left_index接收boolean。表示使用左側(cè)DateFrame中的行索引作為連接鍵。right_index接收boolean。表示使用右側(cè)DateFrame中的行索引作為連接鍵。sort接收boolean,默認為True。表示將合并的數(shù)據(jù)進行排序,設置為False可以提高性能。suffixes接收tuple。表示字符串值組成的元組,用于指定當左右DateFrame存在相同列名時后面附加的后綴名稱,默認為(‘_x’,‘_y’)。例如,如果左右兩個DataFrame對象都有“data”,則結(jié)果中就會出現(xiàn)“data_x”和“data_y”。copy接收boolean,默認為True。如果設置為False,可以在某些特殊情況下避免將數(shù)據(jù)復制到結(jié)果數(shù)據(jù)結(jié)構中。indicator默認為False,表示是否顯示每行數(shù)據(jù)的來源。validate自動檢查其合并鍵中是否有意外的重復項。任務4.4利用Pandas進行財務數(shù)據(jù)合并二、merge()函數(shù)常用參數(shù)1.how參數(shù)how參數(shù)表示數(shù)據(jù)合并的方式,其取值可以為inner、outer、left、right,含義如下表所示。合并類型參數(shù)值含義圖形演示內(nèi)連接inner只保留匹配的行,相當于交集操作左連接left只保留左邊全部行,如果右邊沒有被匹配,則右邊字段取NaN右連接right只保留右邊全部行,如果左邊沒有被匹配,則左邊字段取NaN全連接outer保留左右兩邊全部行,相當于并集操作,沒有被匹配的一邊字段取NaN任務4.4利用Pandas進行財務數(shù)據(jù)合并【做中學4.4.1】請編寫程序?qū)崿F(xiàn)以下操作:如圖4.4.1所示,讀入基本工資表.xlsx和加班工資表.xlsx(位置:E:\file\),然后進行合并,這時參數(shù)設置為:on=[’工號’,’部門’,’姓名’],how=’left’。最后得到合并的表格如下圖中df3所示。任務4.4利用Pandas進行財務數(shù)據(jù)合并importpandasaspd#讀取基本工資表df1=pd.read_excel(r'E:\file\基本工資表.xlsx')#讀取加班工資表df2=pd.read_excel(r'E:\file\加班工資表.xlsx')#兩張表合并為一個新表df3=pd.merge(df1,df2,on=['工號','部門','姓名'],how='left')df3#查看df3df4=pd.merge(df1,df2,on=['工號','部門','姓名'],how='inner')df4#查看df4df5=pd.merge(df1,df2,on=['工號','部門','姓名'],how='outer')df5#查看df5STEP01STEP02STEP03how='left'how='inner'how='outer'任務4.4利用Pandas進行財務數(shù)據(jù)合并2.on參數(shù)
on參數(shù)用來指定用于連接的列名,必須存在于左右兩個DateFrame對象中,可以是一個列名,也可以是多個列名的列表。在【做中學4.4.1】中,on=['工號','部門','姓名']表明在這三列值都相同的情況下才能合并成一行。how參數(shù)的四種操作都是基于on參數(shù)的,在how參數(shù)不變的情況下,如果on參數(shù)發(fā)生變化,合并后表格也會發(fā)生變化。假如僅僅把【做中學4.4.1】程序中的merge()函數(shù)的參數(shù)on修改為on=['工號’,'姓名’],其運行結(jié)果如右圖所示。df6=pd.merge(df1,df2,on=['工號','姓名’],how='outer')df6#查看df6程序如下:運行結(jié)果:任務4.4利用Pandas進行財務數(shù)據(jù)合并4.4.2join()函數(shù)的運用
join()函數(shù)通常用于基于行索引index上的兩個或多個DataFrame對象的連接,而merge()函數(shù)是一個更通用的函數(shù),既可以基于行索引index,又可以基于列名的DataFrame對象連接。一、join()函數(shù)的語法格式及參數(shù)說明join()函數(shù)語法格式如下:DataFrame.join(other,on=None,how='left',lsuffix='',rsuffix='',sort=False)join()函數(shù)常用參數(shù)及其說明參數(shù)說
明other接收DataFrame、Series或者包含多個DataFrame的list。表示參與連接的DataFrame、Series,或者DataFramelist。on接收列名或者包含列名的list或tuple。指定左表中用于連接的列名,右表必須有相同的列(需設置為索引)。默認為None,使用索引連接。how接收inner、left、right、outer。表示數(shù)據(jù)的連接方式,與merge()函數(shù)中的how含義一致,默認為left。lsuffix接收string。表示兩表列名重復時,追加到左表的重復列名的后綴,無默認值。rsuffix接收string。表示兩表列名重復時,追加到右表的重復列名的后綴,無默認值。sort接收boolean。根據(jù)連接鍵對合并的數(shù)據(jù)進行排序,默認為False。任務4.4利用Pandas進行財務數(shù)據(jù)合并二、join()函數(shù)常用參數(shù)1.on參數(shù)默認值None當on參數(shù)為默認值None時,join()函數(shù)是基于行索引index的連接,即DataFrame表格合并時按照index索引匹配連接?!咀鲋袑W4.4.2】請編寫程序?qū)崿F(xiàn)以下操作:如圖4.1.4所示,讀入基本工資表.xlsx和加班工資表.xlsx(位置:E:\file\),使用join()函數(shù)進行合并,這時on參數(shù)為默認值None。最后得到合并表格如右圖中df3所示。任務4.4利用Pandas進行財務數(shù)據(jù)合并importpandasaspd#引入Pandas模塊#讀取基本工資表df1=pd.read_excel(r'E:\file\基本工資表.xlsx')#讀取加班工資樣表df2=pd.read_excel(r'E:\file\加班工資表.xlsx')#兩張表合并為一個新表df3=df1.join(df2,lsuffix='_df1',rsuffix='_df2')df3#查看df3程序如下:運行結(jié)果:2.on參數(shù)為列名或者包含列名的list或tuple
在實際應用中如果右表的索引值也是左表的某一列或幾列的值,這時可以通過設定on參數(shù),實現(xiàn)將右表的索引和左表的列匹配合并。【做中學4.4.3】讀入基本工資表.xlsx和加班工資表.xlsx(位置:E:\file\),使用join()函數(shù)進行合并,設定參數(shù)on=['部門','工號','姓名'],實現(xiàn)工資表格的正確合并。任務4.4利用Pandas進行財務數(shù)據(jù)合并importpandasaspd#引入Pandas模塊#讀取基本工資表df1=pd.read_excel(r'E:\Excel\基本工資表.xlsx')#讀取加班工資表df2=pd.read_excel(r'E:\Excel\加班工資表.xlsx')df3=df2.set_index(['部門','工號','姓名'])df4=df1.join(df3,on=['部門','工號','姓名'])df4#查看df4程序如下:運行結(jié)果:4.4.3concat()函數(shù)的運用concat()函數(shù)用來沿特定軸連接兩個或兩個以上的DataFrame對象,既可實現(xiàn)縱向合并也可實現(xiàn)橫向合并,行列索引均可重復。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)任務4.4利用Pandas進行財務數(shù)據(jù)合并concat()函數(shù)參數(shù)及其說明參數(shù)說明objs接收多個Series、DataFrame或Pane對象的序列或映射。表示參與連接的pandas對象的列表的組合。無默認值。axis接收0或1。表示連接的軸向,默認是0,實現(xiàn)縱向連接。join接收inner或outer。表示其他軸向上的索引是按交集(inner)或并集(outer)進行合并,默認為outer。join_axes接收Inedx對象。表示用于其他n-1條軸的索引,可以代替內(nèi)、外連接的邏輯。ignore_index接收boolean。表示是否保留連接軸上的索引,產(chǎn)生一組新索引range(total_length),默認值為False。keys接收sequence。表示與連接對象有關的值,用于形成連接軸向上的層次化索引,可以是任意值的列表或數(shù)組、元組數(shù)組、數(shù)組列表(如果向levels參數(shù)傳入多層數(shù)組)。levels接收包含多個sequence的list。指定用作層次化索引各級別上的索引,如果設置了keys的話。names接收list。用于創(chuàng)建分層級別的名稱,如果設置了keys和(或)levels的話。verify_integrity接收boolean。用于檢查結(jié)果對象新軸上的重復情況,如果發(fā)現(xiàn)則引發(fā)異常,默認(False)允許重復。任務4.4利用Pandas進行財務數(shù)據(jù)合并二、concat()函數(shù)常用參數(shù)1.axis=1時實現(xiàn)橫向堆疊當axis=1的時候,concat()函數(shù)做行(x軸)對齊,然后將不同列名稱的兩張或多張表合并。當兩個表行索引(index)不完全一樣時,可以使用join參數(shù)選擇是內(nèi)連接還是外連接。在內(nèi)連接的情況下,僅僅返回索引重疊部分;在外連接的情況下,則顯示索引的并集部分數(shù)據(jù),不足的地方則使用空值填補?!咀鲋袑W4.4.4】讀入基本工資表.xlsx和加班工資表.xlsx(位置:E:\file\),使用concat()函數(shù)進行合并,設定參數(shù)axis=1,為了更好的觀察join參數(shù)的變化對表格合并的影響,需對df2的行索引進行調(diào)整。importpandasaspddf1=pd.read_excel(r'E:\file\基本工資表.xlsx’,converters={'工號':str})df2=pd.read_excel(r'E:\file\加班工資表.xlsx’,converters={'工號':str})df2['序號']=pd.Series([1,2,4,5,6])df3=df2.set_index(['序號'])df4=pd.concat([df1,df3],axis=1,join="inner")df5=pd.concat([df1,df3],axis=1,join="outer")做中學4.4.4程序如下:任務4.4利用Pandas進行財務數(shù)據(jù)合并當兩張表行索引完全一樣時,不論join參數(shù)的取值是inner或者outer,結(jié)果都是將兩個表完全按照x軸拼接起來。運行示意圖任務4.4利用Pandas進行財務數(shù)據(jù)合并二、concat()函數(shù)常用參數(shù)2.axis=0時實現(xiàn)縱向堆疊當axis=0的時候,concat()函數(shù)做列(y軸)對齊,將不同行索引的兩張或多張表縱向合并。在兩張表的列名并不完全相同的情況下,可以通過設置join參數(shù)實現(xiàn)不同的合并方式。當join參數(shù)取值為inner時,返回的僅僅是列名的交集所代表的列;當join參數(shù)取值為outer時,返回的是兩者列名的并集所代表的列?!咀鲋袑W4.4.5】讀入基本工資表.xlsx和加班工資表.xlsx(位置:E:\file\),使用concat()函數(shù)進行合并,設定參數(shù)axis=0,觀察join參數(shù)分別為inner、outer時對表格合并的影響。讀入基本工資表.xlsx和加班工資表.xlsx。程序如下:importpandasaspd#導入Pandas模塊df1=pd.read_excel(r'E:\file\基本工資表.xlsx',converters={'工號':str})df2=pd.read_excel(r'E:\file\加班工資表.xlsx',converters={'工號':str})STEP01任務4.4利用Pandas進行財務數(shù)據(jù)合并利用concat()函數(shù)進行合并,設置axis=0,join="inner"。程序如下:pd.concat([df1,df2],axis=0,join="inner")STEP02利用concat()函數(shù)進行合并,設置axis=0,join="outer"。程序如下:pd.concat([df1,df2],axis=0,join="outer")STEP03任務4.4利用Pandas進行財務數(shù)據(jù)合并4.4.4append()函數(shù)的運用append()函數(shù)用來向DataFrame對象中添加新的行(縱向合并),如果添加的列名不在DataFrame對象中,將會被當作新的列進行添加。append()函數(shù)適用場景:兩個DataFrame縱向連接,是concat()函數(shù)(axis=0)的簡略形式。append()函數(shù)的語法格式如下所示:DataFrame.append(other,ignore_index=False,verify_integrity=False,sort=False)append()函數(shù)參數(shù)及其說明參數(shù)說明other接收Series或DataFrame。表示添加的新數(shù)據(jù),無默認值。ignore_index接收boolean。如果輸入為Ture,就會對新生成的DataFrame使用新的索引(自動產(chǎn)生),而忽略原來數(shù)據(jù)的索引,默認值為False。verify_integrity接收boolean。如果為True則遇到重復索引內(nèi)容時則引發(fā)異常,默認值為False。sort接收boolean。表示是否將合并的數(shù)據(jù)進行排序,默認值為False。任務4.4利用Pandas進行財務數(shù)據(jù)合并【做中學4.4.6】讀入基本工資表.xlsx和加班工資表.xlsx(位置:E:\file\),使用append()函數(shù)進行表格的合并。importpandasaspd#導入Pandas模塊df1=pd.read_excel(r'E:\file\基本工資表.xlsx’,converters={'工號':str})df2=pd.read_excel(r'E:\file\加班工資表.xlsx’,converters={'工號':str})df3=df1.append(df2,sort="False")df3#查看df結(jié)果【做中學4.4.6】程序如下:運行結(jié)果:任務4.4利用Pandas進行財務數(shù)據(jù)合并案例解析importpandasaspd#讀取企業(yè)員工基本工資表df1=pd.read_excel(r'E:\file\企業(yè)員工基本工資表.xlsx')#讀取企業(yè)員工加班工資表df2=pd.read_excel(r'E:\file\企業(yè)員工加班工資表.xlsx')#兩張表合并為一個新表df3=pd.merge(df1,df2,on=['工號','部門','姓名'],how='outer')df3.to_excel(r'E:\file\企業(yè)員工工資表.xlsx')程序如下:
本任務“引入案例”的解析如下:通過觀察企業(yè)員工基本工資表和企業(yè)員工加班工資表,發(fā)現(xiàn)這兩張表中有共同的列存在,因此應該使用merge()函數(shù)進行合并,其中參數(shù):on=['工號','部門','姓名'],how='outer'。任務4.4利用Pandas進行財務數(shù)據(jù)合并任務實訓實訓評價評價類別評價內(nèi)容分值得分綜合得分知識與技能評價(70%)能正確讀入表格10
能選擇合適的合并方式20
能正確設定函數(shù)參數(shù)20
能得到正確的實訓結(jié)果20
素質(zhì)評價(30%)具有刻苦、勤奮、好問、獨立思考和細心檢查的學習習慣10
能與組員精誠合作,能正確面對成功或失敗10
具有一定的自學能力,分析問題、解決問題能力和創(chuàng)新能力10
請上機編寫程序?qū)崿F(xiàn)以下要求:讀取工資明細表和年終獎金發(fā)放表(位置:E:\file\),根據(jù)相同的列名將工資明細表和年終獎金發(fā)放表整合到一張表里面,連接方式為左連接。引入案例任務分析知識解析案例解析任務實訓實訓評價4.5.1檢測與處理重復值4.5.2檢測與處理缺失值4.5.3其他異常處理任務4.5利用Pandas進行財務數(shù)據(jù)清洗任務4.5
利用Pandas進行財務數(shù)據(jù)清洗任務4.5利用Pandas進行財務數(shù)據(jù)清洗引入案例任務分析知識解析
美創(chuàng)科技有限公司財務人員小王有一份財務數(shù)據(jù)資料fin_clean.xlsx(位置:E:\file\),但是發(fā)現(xiàn)這是這是一份“臟”數(shù)據(jù),里面含有重復值、缺失值、以及一些特殊的符號。那么,在Pandas中小王如何實現(xiàn)對這些數(shù)據(jù)的清洗呢?要想實現(xiàn)對數(shù)據(jù)的清洗,必須明確數(shù)據(jù)存在哪些問題,再針對各問題逐一擊破。數(shù)據(jù)清洗主要對數(shù)據(jù)中的重復值、異常值、缺失值、數(shù)據(jù)中特殊字符、數(shù)據(jù)格式更改、英文大小寫轉(zhuǎn)換等進行處理。數(shù)據(jù)分析結(jié)果的優(yōu)劣主要依賴于數(shù)據(jù)的優(yōu)劣,但用于分析的原始數(shù)據(jù)往往存在較多問題,如數(shù)據(jù)缺失、數(shù)據(jù)重復、數(shù)據(jù)異常等等,直接對這些數(shù)據(jù)進行統(tǒng)計分析,將會導致分析結(jié)論偏離實際,因此,在數(shù)據(jù)分析之前通常需要先對數(shù)據(jù)進行清洗。數(shù)據(jù)清洗是整個數(shù)據(jù)分析過程當中一項非常重要但又非常復雜和繁瑣的工作。任務4.5利用Pandas進行財務數(shù)據(jù)清洗4.5.1檢測與處理重復值一、duplicated()函數(shù)檢測重復數(shù)據(jù)duplicated()函數(shù)用于檢測Series、DataFrame中是否存在重復數(shù)據(jù),重復為True,不重復為False。該函數(shù)的語法格式如下:Series.duplicated(keep='first')DataFrame.duplicated(subset=None,keep='first')duplicated()函數(shù)參數(shù)說明如下:subset:接收string或sequence。表示列標簽或標簽序列,用于根據(jù)特定列識別重復項,默認情況下使用所有列。keep:接收特定string,取值為first、last、False。默認為first,表示除了第一次出現(xiàn)外,其余相同的重復項標記為True;last表示除了最后一次出現(xiàn)外,其余相同的重復項標記為True;False表示將所有重復項標記為True。運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗【做中學4.5.1】讀入dataClean.xlsx(位置:E:\file\)中的第一張表格,使用duplicated()函數(shù)判斷是否存在重復行。導入相關模塊和Excel表格。程序如下:importnumpyasnp#導入Numpy模塊importpandasaspd#導入Pandas模塊#讀取dataClean.xlsxdf=pd.read_excel(r'E:\file\dataClean.xlsx')df#查看df數(shù)據(jù)STEP01STEP02使用duplicated()函數(shù)判斷是否存在重復項,程序為:df.duplicated()運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗二、drop_duplicates()函數(shù)刪除重復數(shù)據(jù)drop_duplicates()函數(shù)用于刪除Series、DataFrame中重復行,并返回刪除重復后的結(jié)果。該函數(shù)的語法格式如下:Series.drop_duplicates(keep='first',inplace=False)DataFrame.drop_duplicates(subset=None,keep='first',inplace=False,ignore_index=False)drop_duplicates()函數(shù)參數(shù)說明參數(shù)說明subset接收string或sequence。表示列標簽或標簽序列,用于根據(jù)特定列識別重復項,默認情況下使用所有列。keep接收特定string,取值為first、last、False。默認為first,表示保留第一次出現(xiàn)的重復項;last表示保留最后一次出現(xiàn)的重復項;False表示刪除所有重復項。inplace接收bool,默認為False。如果為True,則在原DataFrame上進行更改;如果為False,表示創(chuàng)建一個副本,原對象不變。ignore_index接收bool,默認為False。如果為True,表示重建索引。任務4.5利用Pandas進行財務數(shù)據(jù)清洗【做中學4.5.2】讀入dataClean.xlsx(位置:E:\file\)中的表格,使用drop_duplicates()函數(shù)刪除重復行。drop_duplicates()函數(shù)的參數(shù)為默認值,刪除重復行的程序如下:importnumpyasnpimportpandasaspddf=pd.read_excel(r'E:\file\dataClean.xlsx')df.drop_duplicates()STEP01運行結(jié)果:drop_duplicates()函數(shù)的參數(shù)keep設置為last,其他參數(shù)默認,刪除重復行的程序如下:df.drop_duplicates(keep='last')STEP02運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗drop_duplicates()函數(shù)的參數(shù)inplace、ignore都設置為True,其他參數(shù)默認,刪除重復行的程序如下:#在原DataFrame上進行更改并重建索引df.drop_duplicates(inplace=True,ignore_index=True)df#查看原DataFrame對象STEP03運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗4.5.2檢測與處理缺失值一、檢測缺失值檢測和統(tǒng)計缺失值語法格式及說明語句格式說明①DataFrame.isnull()查看缺失值的位置②DataFrame.isnull().any()某一列只要有缺失值,返回值為True,否則為False③DataFrame.isnull().all()某一列全部為缺失值,返回值為True,否則為False④DataFrame.isnull().sum()統(tǒng)計每列缺失值的數(shù)量⑤DataFrame.isnull().any().sum()統(tǒng)計有缺失值列的列數(shù)量⑥D(zhuǎn)ataFrame.isnull().all().sum()統(tǒng)計全部為缺失值列的列數(shù)量⑦DataFrame.isnull().any(axis=1)某一行只要有缺失值,返回值為True,否則為False⑧DataFrame.isnull().all(axis=1)某一行全部為缺失值,返回值為True,否則為False⑨DataFrame.isnull().any(axis=1).sum()統(tǒng)計有缺失值行的行數(shù)量⑩DataFrame.isnull().all(axis=1).sum()統(tǒng)計全部為缺失值行的行數(shù)量⑾DataFrame.isnull().sum().sum()統(tǒng)計DataFrame缺失值的合計數(shù)任務4.5利用Pandas進行財務數(shù)據(jù)清洗【做中學4.5.3】讀入dataClean.xlsx(位置:E:\file\)中的表格,對表格中的缺失值進行檢測和統(tǒng)計。導入Excel表格和相關模塊。程序如下:importnumpyasnp#導入Numpy模塊importpandasaspd#導入Pandas模塊df=pd.read_excel(r'E:\file\dataClean.xlsx')df#查看df數(shù)據(jù)STEP01運行結(jié)果:檢測df中的缺失值,并使用value_counts()函數(shù)統(tǒng)計每列中不同元素出現(xiàn)的次數(shù)。程序如下:print("缺失值檢測:")print(df.isna())print("每列不同元素出現(xiàn)次數(shù)統(tǒng)計:")print(df.isna().apply(lambdax:x.value_counts()))STEP02任務4.5利用Pandas進行財務數(shù)據(jù)清洗運行結(jié)果:統(tǒng)計每列缺失值個數(shù)。程序如下:df.isnull().sum()STEP03任務4.5利用Pandas進行財務數(shù)據(jù)清洗檢測df每列是否全部為缺失值,并統(tǒng)計列數(shù)。程序如下:print(df.isnull().all())print('列數(shù)為:',df.isnull().all().sum())檢測df每行是否全部為缺失值,并統(tǒng)計行數(shù)。程序如下:print(df.isnull().all(axis=1))print('行數(shù)和為:',df.isnull().all(axis=1).sum())統(tǒng)計df中缺失值的合計數(shù)。程序如下:df.isnull().sum().sum()程序輸出結(jié)果為:14STEP04STEP05STEP06運行結(jié)果:運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗二、刪除缺失值dropna()函數(shù)的語法格式如下:DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)dropna()函數(shù)常用參數(shù)說明參數(shù)說明axis指定刪除方向。默認axis=0,表示刪除缺失值所在的行;axis=1刪除缺失值所在的列。how表示刪除缺失值數(shù)據(jù)的方式。默認how='any',表示這一列或行只要有缺失值存在就刪除;how='all'表示這一列或行全部為缺失值時才刪除。thresh接收int。表示非空元素的數(shù)量。如果某行或列中,非空元素數(shù)量小于這個值,就刪除該行或列。subset接收列表,表示進行缺失值操作的子集。如果axis=0,subset中元素為列的索引;如果axis=1,subset中元素為行的索引。inplace接收bool,默認為False。如果為True,則在原DataFrame上進行更改;如果為False,表示創(chuàng)建一個副本,原對象不變。任務4.5利用Pandas進行財務數(shù)據(jù)清洗【做中學4.5.4】讀入dataClean.xlsx(位置:E:\file\)中的表格,刪除重復數(shù)據(jù)并對表格中的缺失值進行刪除。導入Excel表格,刪除重復項并在原數(shù)據(jù)上刪除全為NaN的列。程序如下:importnumpyasnpimportpandasaspddf=pd.read_excel(r'E:\file\dataClean.xlsx')df.drop_duplicates(inplace=True)df.dropna(axis=1,how='all',inplace=True)df#查看dfSTEP01運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗刪除非空元素數(shù)量小于2的行。程序如下:df.dropna(axis=0,thresh=2,inplace=True)df#查看df刪除只要含有缺失值的列。程序如下:df.dropna(axis=1,how='any',inplace=True)df#查看dfSTEP02STEP03運行結(jié)果:運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗三、填充缺失值fillna()函數(shù)的語法格式如下:DataFrame.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)fillna()函數(shù)常用參數(shù)說明常用參數(shù)說明value接收常數(shù)、dict、Series或DataFrame。表示填充缺失值的值。method表示缺失值填充的方法。method的取值為backfill、bfill、pad、ffill、None。pad/ffill表示用前面行/列的值填充當前行/列的缺失值,backfill/bfill表示用后面行/列的值填充當前行/列的缺失值。默認為None,表示用參數(shù)value指定一個值去替換缺失值。axis指定填充方向。當axis=0時,按列填充;當axis=1時按行填充。inplace接收bool,默認為False。如果為True,則在原DataFrame上進行填充;如果為False,表示創(chuàng)建一個副本,原對象不變。limit接收int。表示限制填充的個數(shù),如limit=2,表示只填充兩個缺失值。【請注意】method參數(shù)不能與value參數(shù)同時使用。任務4.5利用Pandas進行財務數(shù)據(jù)清洗常用數(shù)據(jù)插補方法插補方法描述均值/中位數(shù)/眾數(shù)插補根據(jù)屬性值的類型,用該屬性的均值/中位數(shù)/眾數(shù)進行插補使用固定值將缺失值屬性使用一個常量值替換最近插補值在記錄中找到與該缺失樣本最接近的樣本的該屬性值插補回歸插補值對帶有缺失值的變量,根據(jù)已有的數(shù)據(jù)和與其有關的其他變量(因變量)的數(shù)據(jù)建立擬合模型來預測缺失的屬性值插值法利用已知點建立常用的差值函數(shù)f(x),缺失值由對應點xi求出的函數(shù)值f(xi)近似替代【做中學4.5.5】讀入dataClean.xlsx(位置:E:\file\)中的表格,刪除重復數(shù)據(jù)并填充缺失值。任務4.5利用Pandas進行財務數(shù)據(jù)清洗運行結(jié)果:以每列平均值填充所有缺失值。程序如下:df.fillna(df.mean(),inplace=True)df#查看dfSTEP02運行結(jié)果:STEP01以0填充所有缺失值。程序如下:importnumpyasnp#導入Numpy模塊importpandasaspd#導入Pandas模塊df=pd.read_excel(r'E:\file\dataClean.xlsx')df.drop_duplicates(inplace=True)df.fillna(0)任務4.5利用Pandas進行財務數(shù)據(jù)清洗4.5.3其他異常處理一、刪除特殊字符當要刪除字符串頭尾指定的字符(默認為空格或換行符)或字符序列時,可以使用strip()函數(shù)。該函數(shù)語法格式如下:Series.str.strip([chars])其中,[chars]用來指定要刪除的字符,可以同時指定多個,如果不手動指定,則默認會刪除空格以及制表符、回車符、換行符等特殊字符。【請注意】該方法只能刪除開頭或是結(jié)尾的字符,不能刪除中間部分的字符。二、數(shù)據(jù)替換1.全部替換全部替換是指將DataFrame全部元素或DataFrame中某一列的全部元素進行替換,替換時可以使用replace()函數(shù)。任務4.5利用Pandas進行財務數(shù)據(jù)清洗replace()函數(shù)的一般語法格式為:DataFrame.replace(to_replace,value,inplace)其中,to_replace表示需要替換的值,value表示替換后的值。如果有多個值需要替換可使用字典,使用方法是:{to_replace1:value1,to_replace2:value2,…}。在DataFrame中,有時僅僅只針對某一列進行替換,其一般語法格式為:DataFrame[col]=DataFrame[col].replace(to_replace,value,inplace)2.部分替換str.replace()函數(shù)的一般用法為:DataFrame[col].str.replace(to_replace,value)其中,to_replace表示需要替換的內(nèi)容,value表示替換后的內(nèi)容。str.replace()是字符串函數(shù),只能針對Series使用,所以如果要在DataFrame中調(diào)用str函數(shù),只能選取DataFrame中的一列才能使用。任務4.5利用Pandas進行財務數(shù)據(jù)清洗【做中學4.5.6】讀入dataClean.xlsx(位置:E:\file\)中的表格,首先刪除重復項及全為缺失值列,然后刪除其中的空格、逗號(,)及¥符號,最后用平均值填充缺失值。讀入dataClean.xlsx(位置:E:\file\)中的表格,刪除重復項及全為缺失值列。程序如下:importnumpyasnp#導入Numpy模塊importpandasaspd#導入Pandas模塊#讀取dataClean.xlsxdf=pd.read_excel(r'E:\file\dataClean.xlsx')df.drop_duplicates(inplace=True)df.dropna(axis=1,how='all',inplace=True)df#查看dfSTEP01運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗刪除其中的空格、逗號(,)及¥符號。程序如下:df=df.applymap(lambdax:str(x).replace('',‘’).replace(',','').replace('¥',''))df#查看dfSTEP02更改數(shù)據(jù)類型并用平均值對缺失值進行填充。程序如下:df=df.set_index('期間').astype('float')df.fillna(df.mean())STEP03運行結(jié)果:運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗案例解析讀入fin_clean.xlsx(位置:E:\file\)中的表格。程序如下:importpandasaspddf=pd.read_excel(r'E:\file\fin_clean.xlsx')df#查看dfSTEP01運行結(jié)果:刪除重復值和全為缺失值的列。程序如下:df.drop_duplicates(inplace=True)df.dropna(axis=1,how='all',inplace=True)df#查看dfSTEP02運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗刪除其中的空格、逗號(,)及¥符號。程序如下:df=df.applymap(lambdax:str(x).replace('','').replace('¥','').replace(',',''))df#查看dfSTEP03更改數(shù)據(jù)類型并用平均值對缺失值進行填充。程序如下:df1=df.set_index('月份').astype('float')df1.fillna(df1.mean()).round(2)STEP04運行結(jié)果:運行結(jié)果:任務4.5利用Pandas進行財務數(shù)據(jù)清洗任務實訓
讀入dataClean.xlsx(位置:E:\file\)中的表格進行數(shù)據(jù)清洗,要求如下:(1)刪除重復項;(2)刪除全為缺失值的列;(3)刪除其中的異常符號;(4)按列用缺失值前面的值填充當列缺失值。實訓評價評價類別評價內(nèi)容分值得分綜合得分知識與技能評價(70%)能正確讀入表格10
能正確刪除重復項10
能正確刪除全為缺失值的列10
能夠刪除異常符號20
能正確對剩余缺失值進行填充20
素質(zhì)評價(30%)具有刻苦、勤奮、好問、獨立思考和細心檢查的學習習慣10
能與組員精誠合作,能正確面對他人的成功或失敗10
具有一定的自學能力,分析問題、解決問題能力和創(chuàng)新能力10
項目5利用Pandas進行財務數(shù)據(jù)分析利用Pandas進行數(shù)據(jù)排序和排名分析任務5.1利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析任務5.2利用Pandas進行數(shù)據(jù)的分組與分段分析任務5.3利用Pandas進行數(shù)據(jù)的交叉與透視分析任務5.4目錄利用Pandas進行數(shù)據(jù)相關性分析任務5.5項目學習目標1知識目標2能力目標3素養(yǎng)目標掌握索引排序函數(shù)sort_index()、數(shù)值排序函數(shù)sort_values()以及數(shù)據(jù)排名函數(shù)rank()的使用;掌握常用統(tǒng)計分析函數(shù)的使用,如sum()、mean()、max()、min()等函數(shù);掌握分組統(tǒng)計函數(shù)groupby()、agg()及分段函數(shù)cut()的使用;掌握交叉分析函數(shù)crosstab()及數(shù)據(jù)透視函數(shù)pivot_table()的使用;掌握相關系數(shù)計算函數(shù)corr()的使用。能根據(jù)分析需要對財務數(shù)據(jù)進行排序或排名;能根據(jù)分析需要對財務數(shù)據(jù)進行統(tǒng)計與描述;能根據(jù)分析需要對財務數(shù)據(jù)進行分組和分段;能根據(jù)分析需要對財務數(shù)據(jù)進行交叉和透視分析;能根據(jù)分析需要對財務數(shù)據(jù)進行相關性分析。具有做事認真、一絲不茍的學習態(tài)度;具有與團隊成員精誠合作的精神,能正確面對成功或失??;具有一定的自學能力和實踐創(chuàng)新意識。引入案例任務分析知識解析案例解析任務實訓實訓評價5.1.1數(shù)據(jù)排序5.1.2數(shù)據(jù)排名任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析引入案例美創(chuàng)科技有限公司財務人員小王想利用企業(yè)費用支出表.xlsx(位置:E:\file\)中的數(shù)據(jù),對今年每個月的招待費進行排序和排名,大概了解一下招待費每個月的使用情況,那么在Pandas中如何實現(xiàn)呢?任務分析要想實現(xiàn)對數(shù)據(jù)的排序和排名,就要用到Pandas模塊中的索引排序函數(shù)sort_index()、數(shù)值排序函數(shù)sort_values()以及數(shù)據(jù)排名函數(shù)rank(),通過正確選擇函數(shù)、設置函數(shù)參數(shù),就能實現(xiàn)分析目標。任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析知識解析在數(shù)據(jù)分析時,對數(shù)據(jù)進行排序和排名是常用的操作。通過數(shù)據(jù)的排序和排名,比較容易發(fā)現(xiàn)數(shù)據(jù)的特征和趨勢,找到解決問題的線索。除此之外,排序和排名還有助于對數(shù)據(jù)檢查糾錯,為數(shù)據(jù)的分組或分段提供方便。5.1.1數(shù)據(jù)排序數(shù)據(jù)排序是指使數(shù)據(jù)按一定方式進行排列,通過數(shù)據(jù)排序可以更為方便地看出數(shù)據(jù)特征。DataFrame排序可以分為按索引排序和按數(shù)值排序。任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析一、按索引排序按索引排序是指按照DataFrame索引的值升序或者降序重新排列數(shù)據(jù),在Pandas中利用sort_index()函數(shù)可以實現(xiàn)按照索引對數(shù)據(jù)進行排序。sort_index()函數(shù)的語法格式如下:DataFrame.sort_index(axis=0,level=None,ascending=True,inplace=False,kind='quicksort’,na_position='last',sort_remaining=True,ignore_index=False,key=None)參數(shù)說明axis接收0或1。表示用來指定排序的軸,0表示根據(jù)行索引排序,1表示根據(jù)列索引排序,默認為0。level用來指定索引級別,若設置則按照指定的級別排序,默認為None,即以索引的值進行排序。ascending接收布爾值或布爾值列表。用來指定是否升序排序,默認是True,即升序排序。inplace接收布爾值,默認為False。如果設置為True,則在原地(原來的數(shù)據(jù))進行操作。na_position接收'first'或'last'。用來指定空值(NaN)應該排序的位置,默認為'last',即放在最后面。任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析【做中學5.1.1】讀入應交個稅表.xlsx(位置:E:\file\),將工號設置為行索引,然后根據(jù)行索引升序排列?!咀鲋袑W5.1.1】解析如下:導入Pandas模塊和Excel表格數(shù)據(jù)。程序如下:importpandasaspd#引入Pandas模塊#讀取Excel表格數(shù)據(jù)df=pd.read_excel(r'E:\file\應交個稅表.xlsx')df#查看dfSTEP01將工號列設置為行索引,并按照行索引升序排列。程序如下:df1=df.set_index('工號')#將工號列設置為行索引df1.sort_index(inplace=True)df1#查看df1STEP02任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析二、按數(shù)值排序按數(shù)值排序是指可以按照DataFrame某一列(行)或幾列(行)的值升序或者降序的方式重新排列數(shù)據(jù),在Pandas中利用sort_values()函數(shù)實現(xiàn)對數(shù)值的排序。sort_values()函數(shù)的語法格式如下:DataFrame.sort_values(by,axis=0,ascending=Ture,inplace=Flase,kind='quicksort’,na_position='last',ignore_index=False,key=None)參數(shù)說明by接收字符串(行名或者列名),也可以是字符串的列表(多個行名或者多個列名),需要配合axis參數(shù)使用。如果axis=0或者"index",那么by="列名";如果axis=1或者"columns",那么by="行名"。axis若axis=0或'index',則按照指定列中數(shù)據(jù)大小排序;若axis=1或'columns',則按照指定行中數(shù)據(jù)大小排序,默認axis為0。ascending接收布爾值或布爾值列表。指定是否升序排序,默認是True,即升序排序。inplace接收布爾值,默認為False。如果設置為True,則在原地(原來的數(shù)據(jù))進行操作。na_position接收'first'或'last'。表示指定空值(NaN)應該排序的位置,默認為'last',即放在最后面?!菊堊⒁狻縮ort_values()函數(shù)必須指定by參數(shù),即必須指定行或列。任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析【做中學5.1.2】讀入應交個稅表.xlsx(位置:E:\file\),對表格中的數(shù)據(jù)按列進行排序?!咀鲋袑W5.1.2】解析如下:導入Pandas模塊和Excel表格,并根據(jù)應交個稅列升序排列。程序如下:importpandasaspd#引入Pandas#讀取Excel表格數(shù)據(jù)df=pd.read_excel(r'E:\file\應交個稅表.xlsx')df.sort_values(by='應交個稅')#根據(jù)應交個稅列升序排列STEP01根據(jù)應交個稅列和工號列兩列排序,并且應交個稅列、工號列都降序排列。程序如下:df.sort_values(by=['應交個稅','工號'],
ascending=[False,False])STEP02任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析rank()函數(shù)的語法格式如下:DataFrame.rank(axis=0,method='average',numeric_only=None,na_option='keep',ascending=True,pct=False)5.1.2數(shù)據(jù)排名參數(shù)說明axis接收0或'index',1或'columns'。表示沿著行或列計算排名,默認為0。method接收'average','min','max','first'或'dense',默認為'average'。表示如何對相同數(shù)值進行排名,不同的取值含義如下:①average:在相等分組中,為各個值分配平均排名;②min:使用整個分組的最小排名;③max:使用整個分組的最大排名;④first:按值在原始數(shù)據(jù)中的出現(xiàn)順序分配排名;⑤dense:類似于'min’,但組之間的排名始終提高1,即并列的數(shù)據(jù)只占據(jù)一個名次。numeric_only接收布爾值,表示是否僅僅計算數(shù)字型的columns。na_option接收'keep','top'或'bottom',默認為'keep'。表示NaN值是否參與排名及如何排名,不同的取值含義如下:①keep:將NaN等級分配給NaN值;②top:如果升序,則將最小等級分配給NaN值;③bottom:如果升序,則將最高等級分配給NaN值。ascending接收布爾值,默認為True。表示某列(行)元素是否按升序排名。pct接收布爾值,默認為False。表示是否以百分比形式顯示返回的排名。任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析【做中學5.1.3】讀入應交個稅表.xlsx(位置:E:\file\),對表格中的應交個稅列使用method參數(shù)的四種取值進行排名?!咀鲋袑W5.1.3】程序如下:importpandasaspd#引入Pandas模塊df=pd.read_excel(r'E:\file\應交個稅表.xlsx')df['rank_avg']=df['應交個稅'].rank(ascending=False)df['rank_min']=df['應交個稅'].rank(method='min',ascending=False)df['rank_max']=df['應交個稅'].rank(method='max',ascending=False)df['rank_fir']=df['應交個稅'].rank(method='first',ascending=False)df['rank_den']=df['應交個稅'].rank(method='dense',ascending=False)df#查看df內(nèi)容任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析讀取企業(yè)費用支出表.xlsx(位置:E:\file\)獲取數(shù)據(jù)。程序如下:importpandasaspd#導入Pandas模塊#讀入Excel表格數(shù)據(jù)df=pd.read_excel(r'E:\file\企業(yè)費用支出表.xlsx')df.head()#查看前5行數(shù)據(jù)STEP01案例解析任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析使用sort_values()函數(shù)對招待費按降序排列。程序如下:df1=df.sort_values(by="招待費",ascending=False)df1.head()#查看df前5行STEP02案例解析任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析使用rank()函數(shù)對招待費進行排名,并在原來df增加排名列。程序如下:df['排名']=df['招待費'].rank(method='dense',ascending=False)df#查看dfSTEP03任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析任務實訓請上機編寫程序?qū)崿F(xiàn)以下要求:讀取企業(yè)費用支出表.xlsx(位置:E:\file\),對管理費按降序進行排列,同時對管理費進行排名,且并列的數(shù)據(jù)只占據(jù)一個名次。實訓評價評價類別評價內(nèi)容分值得分綜合得分知識與技能評價(70%)能正確讀入表格10
能選擇合適的函數(shù)20
能正確設定函數(shù)參數(shù)20
能得到正確的實訓結(jié)果20
素質(zhì)評價(30%)具有刻苦、勤奮、好問、獨立思考和細心檢查的學習習慣10
能與組員精誠合作,能正確面對他人的成功或失敗10
具有一定的自學能力,分析問題、解決問題能力和創(chuàng)新能力10
任務5.1利用Pandas進行數(shù)據(jù)排序和排名分析引入案例任務分析知識解析案例解析任務實訓實訓評價5.2.1數(shù)值型字段的統(tǒng)計與描述5.2.2分類型字段的統(tǒng)計與描述任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析引入案例美創(chuàng)科技有限公司的財務人員小王想要根據(jù)企業(yè)費用支出表.xlsx(位置:E:\file\)中的數(shù)據(jù)計算辦公費的合計數(shù)、平均值、最大值、最小值、標準差等統(tǒng)計指標,那么小王如何利用Pandas快速計算出這些統(tǒng)計值呢?任務分析利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述,首先要確定分析數(shù)據(jù)的類型,如果是數(shù)值類型,可以直接利用統(tǒng)計指標函數(shù)(如求和函數(shù)sum()、平均數(shù)函數(shù)mean()、最大值函數(shù)max()等),或者利用describe()函數(shù)直接進行描述性統(tǒng)計;如果是分類型數(shù)據(jù),可以利用value_counts()函數(shù)進行統(tǒng)計,或者使用describe()函數(shù)進行統(tǒng)計分析。任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析知識解析數(shù)據(jù)的統(tǒng)計與描述可以用來概括和表示數(shù)據(jù)的分布狀況,通過這些統(tǒng)計指標可以方便的表示一組數(shù)據(jù)的集中趨勢、離散趨勢、頻數(shù)分布等特征。5.2.1數(shù)值型字段的統(tǒng)計與描述數(shù)值型字段是指該字段是用數(shù)值來描述的,如營業(yè)收入、營業(yè)成本、凈利潤等。數(shù)值型字段的描述性統(tǒng)計主要包括計算最小值、最大值、均值、中位數(shù)、四分位數(shù)、極差、方差、標準差等統(tǒng)計指標。任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析一、直接利用統(tǒng)計指標進行計算Pandas提供了很多方法來計算數(shù)值型字段的各類指標,常用統(tǒng)計指標如下表所示。方法名稱說明方法名稱說明mean均值max最大值median中位數(shù)min最小值mode眾數(shù)ptp極差quantile四分位數(shù)std標準差sum總和cumsum累加和skew偏度kurt峰度直接利用統(tǒng)計指標進行計算的語法格式:DataFrame[column].統(tǒng)計指標任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析【做中學5.2.1】讀入期間費用表.xlsx(位置:E:\file\),實現(xiàn)如下操作:(1)對銷售費用求和;(2)對管理費用求平均值;(3)對財務費用求標準差。importpandasaspd#引入Pandas模塊#讀取Excel表格數(shù)據(jù)df=pd.read_excel(r'E:\file\期間費用表.xlsx')print('銷售費用的和為:',df['銷售費用'].sum())print('管理費用的平均值為:',df['管理費用'].mean())print('財務費用的標準差為:',df['財務費用'].std())【做中學5.2.1】程序如下:銷售費用的和為:75355管理費用的平均值為:23267.5財務費用的標準差為:1611.3278732621475程序輸出結(jié)果如下所示:任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析二、利用describe()函數(shù)進行計算Pandas模塊提供了describe()函數(shù)用來一次性計算數(shù)值型字段的8個統(tǒng)計指標,如下表所示。方法名稱說明count非空個數(shù)mean均值std標準差min最小值25%25%分位數(shù)50%50%分位數(shù),即中位數(shù)75%75%分位數(shù)max最大值在調(diào)用describe()函數(shù)計算統(tǒng)計指標時,還可以采用describe()[i](i=0,1,2,…)的方法調(diào)用某個統(tǒng)計指標,如用describe()[0]調(diào)用第1個統(tǒng)計指標count,如用describe()[1]調(diào)用第2個統(tǒng)計指標mean。同時,還可以用指標名稱來調(diào)用指標,如describe()['25%'],表示調(diào)用25%分位數(shù),即調(diào)用下四分位數(shù)。任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析【做中學5.2.2】讀入期間費用表.xlsx(位置:E:\file\),使用describe()函數(shù)實現(xiàn)對財務費用的描述性統(tǒng)計分析。importpandasaspd#引入Pandas模塊#讀取Excel表格數(shù)據(jù)df=pd.read_excel(r'E:\file\期間費用表.xlsx')print('財務費用的描述性統(tǒng)計指標如下:')print(df['財務費用'].describe())print('采用位置獲取標準差:',df['財務費用'].describe()[2])print('采用名稱獲取標準差:',df['財務費用'].describe()['std'])print('采用名稱獲取下四分位數(shù):',df['財務費用'].describe()['25%'])【做中學5.2.2】程序如下:財務費用的描述性統(tǒng)計指標如下:count12.000000mean3963.666667std1611.327873min2047.00000025%2581.25000050%3959.50000075%5335.000000max6163.000000Name:財務費用,dtype:float64采用位置獲取標準差:1611.3278732621475采用名稱獲取標準差:1611.3278732621475采用名稱獲取下四分位數(shù):2581.25程序輸出結(jié)果如下所示:任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析5.2.2分類型字段的統(tǒng)計與描述一、利用value_counts()函數(shù)進行統(tǒng)計分析參數(shù)說明normalize接收布爾型。表示是否按頻率顯示,默認為False,則按頻數(shù)顯示。sort接收布爾型。表示是否對結(jié)果排序,默認為True,會對結(jié)果進行排序。ascending接收布爾型。表示按降序排列,還是升序排序,默認為False,表示降序。bins接收整數(shù)。表示可以自定義分組區(qū)間,默認為None,只適用于數(shù)值型數(shù)據(jù)。dropna接收布爾型。表示是否刪除缺失值NaN,默認為Ture,表示刪除缺失值。任務5.2利用Pandas進行數(shù)據(jù)的統(tǒng)計與描述分析Pandas提供了value_counts()函數(shù)用來統(tǒng)計分類型字段的頻數(shù)。value_counts()函數(shù)的語法格式如下:Series.value_counts(normalize=False,sort=True,ascending=False,bins=None,dropna=True)【做中學5.2.3】讀入銷售統(tǒng)計表.xlsx(位置:E:\file\),使用value_counts()函數(shù)統(tǒng)計不同銷售部門的員工人數(shù)?!咀鲋袑W5.2.3】解析如下:導入Pandas模塊和Excel表格數(shù)據(jù)。程序如下:importpandasaspd#引入Pandas模塊#讀取Excel表格數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影視行業(yè)制作管理與后期剪輯方案
- Unit8 lesson 6教學設計 - 2024-2025學年冀教版英語七年級上冊
- 川教版三上信息技術3.2 添加角色 教學設計
- 全國冀教版信息技術四年級上冊新授課 第7課 Internet Explorer下載 教學設計
- 2025年簡易網(wǎng)站服務合同5篇
- 19 食物與營養(yǎng) 教學設計-2024-2025學年科學三年級上冊蘇教版
- 電子支付商戶合作協(xié)議8篇
- 標準駕校培訓合同范本8篇
- 河南砂漿環(huán)氧地坪施工方案
- 小學二年級數(shù)學100以內(nèi)加減法豎式計算競賽考核口算題帶答案
- Android移動應用開發(fā)基礎教程-教案
- 2023年全國醫(yī)學博士外語統(tǒng)一考試(英語)
- 2024年中儲棉總公司招聘筆試參考題庫含答案解析
- 微整培訓課件
- TQRDC供應商評價標準-0314
- 2023年初級出版資格證考試:《初級出版專業(yè)實務》真題模擬匯編(共267題)
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術標準》
- 【全】小學一年級下冊科學教學設計廣東版粵教版
- 電梯結(jié)構與原理-第2版-全套課件
- 心理學在員工培訓與發(fā)展中的應用研究
- XX醫(yī)院按病種付費(DIP)工作實施方案(按病種分值付費(DIP)實施工作流程)
評論
0/150
提交評論