Python程序設計教程(工作手冊式) 教案 王瑤 情景5-7 Python數(shù)據(jù)分析與可視化、Python與會計、Python與電子商務教案_第1頁
Python程序設計教程(工作手冊式) 教案 王瑤 情景5-7 Python數(shù)據(jù)分析與可視化、Python與會計、Python與電子商務教案_第2頁
Python程序設計教程(工作手冊式) 教案 王瑤 情景5-7 Python數(shù)據(jù)分析與可視化、Python與會計、Python與電子商務教案_第3頁
Python程序設計教程(工作手冊式) 教案 王瑤 情景5-7 Python數(shù)據(jù)分析與可視化、Python與會計、Python與電子商務教案_第4頁
Python程序設計教程(工作手冊式) 教案 王瑤 情景5-7 Python數(shù)據(jù)分析與可視化、Python與會計、Python與電子商務教案_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python程序設計工作手冊式教材教案專業(yè)名稱:課程名稱:Python程序設計任課班級:教師姓名:所屬院系:職稱:課時:64使用教材:

情景五揭秘Python程序設計之謎教學課題NumPy基礎學習序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠按要求實現(xiàn)數(shù)組的相關操作。知識目標:了解Numpy庫的常規(guī)使用方法素質目標:接受新知識、自主學習的能力。教學重點數(shù)組教學難點數(shù)組教學過程設計備注一、技術準備安裝NumPy最簡單的方法就是使用pip工具:cmd回車進入命令行窗口,輸入pipinstallNumPy。測試:二、教學內容1、數(shù)組NumPy中的數(shù)組使用跟Python中的列表非常類似,區(qū)別如下:一個列表中可以存儲多種數(shù)據(jù)類型,而數(shù)組只能存儲同種數(shù)據(jù)類型;數(shù)組可以是多維的,當數(shù)組中的所有數(shù)據(jù)類型都是數(shù)值型的時候,相當于線性代數(shù)中的矩陣,是可以進行相互間的運算的。數(shù)組類型名稱描述bool_布爾型數(shù)據(jù)類型(True或者False)int_默認的整數(shù)類型(類似于C語言中的long,int32或int64)intc與C的int類型一樣,一般是int32或int64intp用于索引的整數(shù)類型(類似于C的ssize_t,一般情況下仍然是int32或int64)int8字節(jié)(-128to127)int16整數(shù)(-32768to32767)int32整數(shù)(-2147483648to2147483647)int64整數(shù)(-9223372036854775808to9223372036854775807)uint8無符號整數(shù)(0to255)uint16無符號整數(shù)(0to65535)uint32無符號整數(shù)(0to4294967295)uint64無符號整數(shù)(0to18446744073709551615)float_float64類型的簡寫float16半精度浮點數(shù),包括:1個符號位,5個指數(shù)位,10個尾數(shù)位float32單精度浮點數(shù),包括:1個符號位,8個指數(shù)位,23個尾數(shù)位float64雙精度浮點數(shù),包括:1個符號位,11個指數(shù)位,52個尾數(shù)位complex_complex128類型的簡寫,即128位復數(shù)complex64復數(shù),表示雙32位浮點數(shù)(實數(shù)部分和虛數(shù)部分)complex128復數(shù),表示雙64位浮點數(shù)(實數(shù)部分和虛數(shù)部分)2、數(shù)組的創(chuàng)建N維數(shù)組的創(chuàng)建空數(shù)組的創(chuàng)建全0數(shù)組的創(chuàng)建全1數(shù)組的創(chuàng)建涉及數(shù)值范圍數(shù)組的創(chuàng)建等差數(shù)列數(shù)組的創(chuàng)建等比數(shù)列數(shù)組的創(chuàng)建3、NumPy常用函數(shù)數(shù)組處理函數(shù)數(shù)學函數(shù)統(tǒng)計函數(shù)IO函數(shù)部分常用函數(shù)的演示。三、總結通過本次任務的學習和實踐,使我們熟悉了數(shù)組和NumPy常用函數(shù)的使用,并且能夠熟練掌握數(shù)組創(chuàng)建和常見處理方法。NumPy庫中函數(shù)很多,由于篇幅有限,部分函數(shù)沒有給出用法,也沒有進行案例演示,請同學們自行利用網(wǎng)絡和其他資源檢索相關函數(shù)的實際使用方法,提高信息檢索能力。作業(yè)布置教學反思情景五揭秘Python程序設計之謎教學課題Matploblib基礎學習序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠按要求實現(xiàn)數(shù)組的相關操作。知識目標:了解Matploblib庫的常規(guī)使用方法素質目標:接受新知識、自主學習的能力。教學重點數(shù)組教學難點數(shù)組教學過程設計備注一、技術準備安裝Matploblib與安裝NumPy的方法類似:cmd回車進入命令行窗口,輸入pipinstallMatploblib。matplotlib的導入:importmatplotlib.pyplotasplt二、教學內容1、認識MatploblibFigure的創(chuàng)建和顯示。創(chuàng)建了Figure對象之后,還需要創(chuàng)建軸,沒有軸的話就沒有繪圖基準,所以需要添加Axes。二、各種相應圖形的繪制及演示線圖散點圖直方圖餅圖等高線(輪廓圖)以上各種圖形繪制函數(shù)的說明和演示。三、總結通過本次任務的學習和實踐,使我們熟悉了利用matplotlib中的相關函數(shù)繪制一些常見圖形的方法。利用matplotlib中的相關函數(shù)可以繪制許多類型的圖形,由于篇幅有限,部分圖形的繪制沒有演示,請同學們自行利用網(wǎng)絡和其他資源檢索其他圖形的繪制方法,提高信息檢索能力。作業(yè)布置教學反思情景五揭秘Python程序設計之謎教學課題Pandas基礎學習序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠按要求實現(xiàn)數(shù)組的相關操作。知識目標:了解Pandas庫的常規(guī)使用方法素質目標:接受新知識、自主學習的能力。教學重點數(shù)組教學難點數(shù)組教學過程設計備注一、技術準備安裝Matploblib與安裝NumPy的方法類似:cmd回車進入命令行窗口,輸入pipinstallpandas。matplotlib的導入:importpandas二、教學內容1、Series認識2、DataFrame結構3、Pandassorting排序按標簽排序—sort_index()方法按數(shù)值排序—sort_values()方法4、Pandas統(tǒng)計函數(shù)函數(shù)名稱描述說明count()統(tǒng)計某個非空值的數(shù)量。sum()求和mean()求均值median()求中位數(shù)mode()求眾數(shù)std()求標準差min()求最小值max()求最大值abs()求絕對值prod()求所有數(shù)值的乘積。cumsum()計算累計和,axis=0,按照行累加;axis=1,按照列累加。cumprod()計算累計積,axis=0,按照行累積;axis=1,按照列累積。corr()計算數(shù)列或變量之間的相關系數(shù),取值-1到1,值越大表示關聯(lián)性越強。5、PandasExcel讀寫操作to_excel()read_excel()三、總結通過本次任務的學習和實踐,使我們熟悉了pandas中一些常見函數(shù)的使用方法。Pandas在數(shù)據(jù)分析、數(shù)據(jù)可視化方面有著較為廣泛的應用,由于篇幅有限,還有很多實用函數(shù)沒有介紹,請同學們自行利用網(wǎng)絡和其他資源檢索相關信息,提高信息檢索能力。作業(yè)布置教學反思Python程序設計工作手冊式教材教案專業(yè)名稱:課程名稱:Python程序設計任課班級:教師姓名:所屬院系:職稱:課時:64使用教材:

情景六Python與會計教學課題Python之財務報表生成(1)序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠按要求實現(xiàn)報表的拼接、項目數(shù)據(jù)計算的操作方法;能夠按要求實現(xiàn)資產(chǎn)負債表的優(yōu)化相關操作。知識目標:熟悉excel數(shù)據(jù)的讀取與利用;熟悉透視表的制作、數(shù)據(jù)讀取及計算表達式的書寫。素質目標:培養(yǎng)接受新知識,跨界學習和合作能力。教學重點利潤表的編制教學難點利潤表的編制教學過程設計備注一、教學內容1、表間數(shù)據(jù)關系認識科目余額表是基本會計作賬表格,是各個科目的余額,一般包括上期余額、本期發(fā)生額、期末余額。做科目余額表主要是為了方便做資產(chǎn)負債表、利潤表等財務報表。會計科目和財務報表之間存在一定的映射關系,根據(jù)科目余額表中會計科目對財務報表映射關系,生成科目映射表,通過科目映射表對科目余額表與財務報表的橋接作用,就可自動計算出財務報表項目數(shù)據(jù),方便財務報表的編制。詳細內容見數(shù)據(jù)準備素材中“科目映射表”。圖6-1科目余額表、映射表及財務報表關系圖2.獲取余額表、科目映射表數(shù)據(jù)準備好科目余額表數(shù)據(jù)、科目映射表數(shù)據(jù)、資產(chǎn)負債表格式、利潤表格式后,引入pandas模塊,讀取科目余額表、映射表、資產(chǎn)負債表及利潤表等相關表格,熟悉相關表格的格式、數(shù)據(jù)關系,理解相關邏輯。3、將科目余額表與映射表拼接準備好數(shù)據(jù)后,將科目余額表與科目映射表進行拼接,為編制財務報表做好準備。拼接后效果如下圖所示。圖6-2科目余額表與映射表拼接效果圖4、編制利潤表本年形成的利潤即利潤表中的凈利潤與資產(chǎn)負債表中“本年利潤”項目有關,故先編制出利潤表,再編制資產(chǎn)負債表。(1)科目余額按報表項目匯總,計算出利潤表項目篩選出合并報表中的利潤表科目,通過merge()函數(shù)找到項目編號中“I”開頭的項目,運行結果為“True”的,即為利潤表項目。再對篩選出項目進行空值填充、數(shù)據(jù)合并、索引重置及修改為報表項目名稱等,計算出利潤表項目金額,為計算本期利潤結果準備。實施過程如下。(2)生成利潤表結構通過上面的操作,僅把本期的利潤表項目及金額計算出來了,但并不是會計準則所要求的格式,因此,再次通過merge()函數(shù),把數(shù)據(jù)表與原準備的利潤表標準格式表相拼接,并通過del()函數(shù)等,刪除兩表中重復內容的列,并根據(jù)標準格式重新定義列名稱等,搭建起利潤表結構。(3)計算利潤項目利潤表項目數(shù)據(jù)取得后,但利潤項目的數(shù)據(jù)還不正確,需通過利潤表項目數(shù)據(jù)計算獲得,計算公式如下:營業(yè)利潤=主營業(yè)務收入+其他業(yè)務收入-主營業(yè)務成本-其他業(yè)務成本-稅金及附加-銷售費用-管理費用-財務費用-資產(chǎn)減值損失+投資收益+公允價值變動損益利潤總額=營業(yè)利潤+營業(yè)外收入-營業(yè)外支出凈利潤=利潤總額-所得稅費用因準備素材中已經(jīng)把支出按負數(shù)表示,故以下實現(xiàn)代碼中直接求和計算。結果如6-8所示。圖6-3本期利潤項目計算后利潤表結構圖(4)編輯利潤表格式及輸出利潤表利潤表各項目數(shù)據(jù)計算出來后,就是對其項目順序、小數(shù)位數(shù)等格式進行美化調整,再輸出利潤表。5、練習提高讓同學們在計算機上把利潤表編制過程實踐操作一遍,加深印象。三、總結通過本次任務的學習和實踐,讓我們熟悉了excel表的讀取和輸出,能夠熟練地掌握merge函數(shù)、pivot函數(shù)、列表數(shù)據(jù)的讀取、引用、索引等方法的綜合實踐操作,也讓我們對利潤表結構和數(shù)據(jù)邏輯關系有了進一步的認識。同時建議大家要認識規(guī)律、利用規(guī)律,樹立追求真理踏實認真的工作態(tài)度。作業(yè)布置利用給定的數(shù)據(jù),編制利潤表。教學反思教師總結本次課的知識點,重點強調利用Python語言進行利潤表的編制。結合教學重點和難點,對所學知識進一步強化。

情景六Python與會計教學課題Python之財務報表生成(2)序號2課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠按要求實現(xiàn)報表的拼接、項目數(shù)據(jù)計算的操作方法;能夠按要求實現(xiàn)資產(chǎn)負債表及利潤表的優(yōu)化相關操作。知識目標:熟悉excel數(shù)據(jù)的讀取與利用;熟悉透視表的制作、數(shù)據(jù)讀取及計算表達式的書寫。素質目標:培養(yǎng)接受新知識,跨界學習和合作能力。教學重點資產(chǎn)負債表的編制教學難點資產(chǎn)負債表的編制教學過程設計備注一、教學內容1.計算出資產(chǎn)負債表項目本任務數(shù)據(jù)賬面未進行本年利潤結轉,因此采用表結法將利潤表算出的凈利潤數(shù)據(jù)結轉到資產(chǎn)負債表本年利潤中進行計算的。依然像利潤表一樣,先把合并表中的資產(chǎn)負債表項目及相關數(shù)據(jù)通過pivot()函數(shù)進行透視讀取出來,為后續(xù)編制資產(chǎn)負債表做準備。2.生成資產(chǎn)負債表結構按照資產(chǎn)負債表格式項目,設置報表列名稱,并把資產(chǎn)負債表項目表與標準資產(chǎn)負債表格式表進行拼接,并刪除多余列及各項目順序,生成資產(chǎn)負債表標準結構表,并規(guī)范資產(chǎn)負債表項目名稱及順序3、結轉凈利潤到資產(chǎn)負債表中本實驗數(shù)據(jù)賬面未進行本年利潤結轉,因此采用表結法將利潤表算出的凈利潤數(shù)據(jù)結轉到資產(chǎn)負債表中‘本年利潤’項目。4、計算資產(chǎn)負債表項目本年形成的利潤即利潤表中的凈利潤與資產(chǎn)負債表中“本年利潤”項目有關,故先編制出利潤表,再編制資產(chǎn)負債表。圖6-8本期利潤項目計算后利潤表結構圖(4)編輯利潤表格式及輸出利潤表利潤表各項目數(shù)據(jù)計算出來后,就是對其項目順序、小數(shù)位數(shù)等格式進行美化調整,再輸出利潤表。資產(chǎn)負債表是反映企業(yè)在某一特定日期(如月末、季末、年末)全部資產(chǎn)、負債和所有者權益情況的會計報表,是企業(yè)經(jīng)營活動的靜態(tài)體現(xiàn),根據(jù)“資產(chǎn)=負債+所有者權益”這一平衡公式,依照一定的分類標準和一定的次序,將某一特定日期的資產(chǎn)、負債、所有者權益的具體項目予以適當?shù)呐帕芯幹贫???勺屗虚喿x者于最短時間了解企業(yè)經(jīng)營狀況。其中部分項目需根據(jù)項目邏輯結構及性質,經(jīng)過計算得來,計算公式如下:流動資產(chǎn)合計為所有流動資產(chǎn)余額之和,非流動資產(chǎn)由所有非流動資產(chǎn)余額之和組成,相應,非流負債產(chǎn)合計為所有非流動負債余額之和,所有者權益合計為所有所有者權益之和組成。而:資產(chǎn)合計=流動資產(chǎn)+非流動資產(chǎn)負債合計=流動負債+非流動負債負債及所有者權益合計=負債合計+所有者權益合計本例中,需計算期末和期初兩期相關數(shù)據(jù)。5、校驗資產(chǎn)負債表平衡資產(chǎn)負債表編制基礎為:資產(chǎn)=負債+所有者權益,因此,根據(jù)此原理,需檢驗所編制報表是否平衡,若不平衡,則需檢查相關計算過程及數(shù)據(jù)來源,平衡了,則從原理上講是編制正確的。此處,用if…else…條件判斷語句完成相關檢驗工作,用abs()函數(shù)將負債和權益類的報表項轉為正數(shù)顯示,自行計算報表匯總項。6、資產(chǎn)負債表格式優(yōu)化及輸出資產(chǎn)表各項目數(shù)據(jù)計算出來并對其平衡校驗后,就是對其項目順序、小數(shù)位數(shù)等格式進行美化調整,并輸出結果。7、練習提高讓同學們在計算機上把資產(chǎn)負債表編制過程實踐操作一遍,加深印象。三、總結通過本次任務的學習和實踐,讓我們熟悉了excel表的讀取和輸出,能夠熟練地掌握merge函數(shù)、pivot函數(shù)、列表數(shù)據(jù)的讀取、引用、索引等方法的綜合實踐操作,也讓我們對資產(chǎn)表結構和數(shù)據(jù)邏輯關系有了進一步的認識。同時建議大家要認識規(guī)律、利用規(guī)律,樹立追求真理踏實認真的工作態(tài)度。作業(yè)布置利用給定的數(shù)據(jù),編制資產(chǎn)負債表。教學反思教師總結本次課的知識點,重點強調利用Python語言進行表的資產(chǎn)負債表編制。結合教學重點和難點,對所學知識進一步強化。情景六Python與會計教學課題Python之財務數(shù)據(jù)分析(1)序號3課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠根據(jù)指標要求,選擇恰當?shù)呢攧請蟊砑跋鄳獢?shù)據(jù),掌握數(shù)據(jù)讀取、計算及結果輸出的常用操作方法;能夠根據(jù)需要選擇相應企業(yè)進行財務數(shù)據(jù)分析的相關操作。知識目標:熟悉數(shù)結構表中項目計算公式的表達、數(shù)據(jù)格式的轉換,計算結果的輸出等相關操作方法;熟悉Python中變量的定義、數(shù)據(jù)讀取方法等。素質目標:培養(yǎng)跨界融合學習的能力。教學重點償債能力指標計算教學難點償債能力評價指標體系的構建教學過程設計備注一、教學內容1、財務報表分析數(shù)據(jù)準備本任務利用上一節(jié)生成的資產(chǎn)負債表和利潤表進行財務報表分析,因此先讀取資產(chǎn)負債表和利潤表。因后續(xù)指標計算中,對資產(chǎn)負債表項目多處需用到平均值,因此,先將資產(chǎn)負債表增加一列平均值,以備后用。如下圖所示:圖6-4增加平均值列后的資產(chǎn)負債表2.償債能力分析償債能力是指企業(yè)償還到期債務(包含本金及利息)的能力。能否及時償還到期債務,是反映企業(yè)財務狀況好壞的重要標志。通過對償債能力的分析,可以考察企業(yè)持續(xù)經(jīng)營的能力和風險,有助于對企業(yè)未來收益進行預測。企業(yè)償債能力分析包括短期償債能力分析和長期償債能力分析兩個方面。償債能力常用流動比率、速動比率、現(xiàn)金比率、資產(chǎn)負債率、產(chǎn)權比率等指標來反映,主要計算公式如下表所示。表6-1償債能力主要指標指標計算公式指標說明流動比率=流動資產(chǎn)÷流動負債速動比率=速動資產(chǎn)÷流動負債速動資產(chǎn)=貨幣資金+交易性金融資產(chǎn)+應收賬款+應收票據(jù)+其他應收款現(xiàn)金比率=(貨幣資金+交易性金融資產(chǎn))÷流動負債×100%資產(chǎn)負債率=負債總額/資產(chǎn)總額×100%產(chǎn)權比率=負債總額/所有者權益總額×100%償債能力指標一般有一定的區(qū)間值,不是越高越好,速動比率一般在1左右比較合適,流動比率一般在1.5~2比較好。這兩個比率若低于區(qū)間值,說明公司流動性不好,償債能力較差,但是比率太大,則表示公司流動資金占用較多,影響資金的周轉效率。同理,現(xiàn)金比率一般在20%左右比較合適。資產(chǎn)負債率在40%~60%比較合適,一般認為不能超過70%,超過70%有較大的償債風險。比率過低,則不能發(fā)揮財務杠桿的作用。3、償債能力指標計算根據(jù)償債能力指標計算數(shù)據(jù)要求,從資產(chǎn)負債表中對應列讀取相關數(shù)據(jù),進行計算,并對計算結果進行輸出。5、練習提高練習給定案例企業(yè)的償債能力指標計算,并進行評價,以理解本節(jié)內容。三、總結通過本次任務的學習和實踐,使我們熟悉了Python在財務數(shù)據(jù)分析中的程序,了解了常用的償債能力分析指標的計算及呈現(xiàn)形式,并且能夠熟練地對分析結果輸出的常用操作方法的實踐操作。企業(yè)財務數(shù)據(jù)分析的內容很多,同學們可以在熟練此分析程序和方法的基礎上,深入展開對償債能力外其它能力指標的分析,讓我們感受利用大數(shù)據(jù)資源、python等新技術去分析和評價企業(yè)的價值和樂趣。作業(yè)布置利用給定的數(shù)據(jù)資源,評價企業(yè)的償債能力。教學反思教師總結本次課的知識點,重點強調利用Python語言進行償債能力分析評價。結合教學重點和難點,對所學知識進一步強化。

情景六Python與會計教學課題Python之財務數(shù)據(jù)分析(2)序號4課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠根據(jù)指標要求,選擇恰當?shù)呢攧請蟊砑跋鄳獢?shù)據(jù),掌握數(shù)據(jù)讀取、計算及結果輸出的常用操作方法;能夠根據(jù)需要選擇相應企業(yè)進行財務數(shù)據(jù)分析的相關操作。知識目標:熟悉數(shù)結構表中項目計算公式的表達、數(shù)據(jù)格式的轉換,計算結果的輸出等相關操作方法;熟悉Python中變量的定義、數(shù)據(jù)讀取方法等。素質目標:培養(yǎng)跨界融合學習的能力。教學重點償債能力指標計算教學難點償債能力評價指標體系的構建教學過程設計備注一、教學內容1、營運能力分析營運能力分析是衡量公司資產(chǎn)管理效率的財務比率,營運能力指標也可以用周轉天數(shù)來衡量。存貨周轉天數(shù)加應收賬款的周轉天數(shù)等于營運周期。營運周期越短,意味著企業(yè)的資金周轉速度越快,運營能力越強。營運能力常用應收賬款周轉率、流動資產(chǎn)周轉率、總資產(chǎn)周轉率、營運資本周轉率等指標來反映,主要計算公式如下表所示。表6-2營運能力主要指標指標計算公式指標說明應收賬款周轉率(周轉次數(shù))(RTR)=營業(yè)收入/平均應收賬款余額平均應收賬款余額=應收賬款平均余額+應收票據(jù)平均余額總資產(chǎn)周轉率(周轉次數(shù))(TA)=營業(yè)收入/平均總資產(chǎn)平均總資產(chǎn)=(年初總資產(chǎn)+年末總資產(chǎn))/2流動資產(chǎn)周轉率(周轉次數(shù))(CAT)=營業(yè)收入/平均流動資產(chǎn)平均流動資產(chǎn)=(年初流動資產(chǎn)+年末流動資產(chǎn))/2營運資本周轉率(周轉次數(shù))(WCT)=營業(yè)收入/平均營運資本營運資本=流動資產(chǎn)-流動負債企業(yè)資產(chǎn)被利用得越充分,資產(chǎn)運用創(chuàng)造的收益就越多,資產(chǎn)運用效率就越好。資產(chǎn)運用效率是資產(chǎn)管理效果的重要體現(xiàn),資產(chǎn)管理效果越好,閑置、低效的資產(chǎn)就越少,相應地資產(chǎn)周轉速度就會提高,企業(yè)的經(jīng)營管理水平也就越高。2.營運能力指標計算根據(jù)營運能力指標計算數(shù)據(jù)要求,分別從資產(chǎn)負債表和利潤表中對應列讀取相關數(shù)據(jù),進行計算,并對計算結果進行輸出。3、盈利能力分析盈利能力是指企業(yè)獲取利潤、實現(xiàn)資金增值的能力,是企業(yè)持續(xù)經(jīng)營和發(fā)展的保證。企業(yè)經(jīng)營業(yè)績的好壞最終可通過企業(yè)的盈利能力來反映。對于信用相同或相近的幾個企業(yè),人們總是將資金投向盈利能力強的企業(yè)。股東們關心企業(yè)賺取利潤的多少并重視對利潤率的分析,是因為他們的投資收益與企業(yè)的盈利能力是緊密相關的;此外,企業(yè)盈利能力增加還會使股票價格上升,從而使股東們獲得資本收益。盈利能力常用銷售毛利率、銷售利潤率、銷售凈利率、總資產(chǎn)凈利潤等指標來反映,主要計算公式如下表所示。表6-3盈利能力主要指標指標計算公式指標說明銷售毛利率(GPM)=銷售毛利÷營業(yè)收入×100%銷售毛利(GM)=營業(yè)收入-營業(yè)成本銷售利潤率(ROS)=營業(yè)利潤÷營業(yè)收入×100%銷售凈利潤率(TTM)=凈利潤÷營業(yè)收入×100%總資產(chǎn)凈利率(ROA)=凈利潤÷平均總資產(chǎn)×100%平均總資產(chǎn)=(總資產(chǎn)期初數(shù)+總資產(chǎn)期本數(shù))÷2利潤率越高,盈利能力越強;利潤率越低,盈利能力越差。企業(yè)經(jīng)營業(yè)績的好壞最終可通過企業(yè)的盈利能力來反映。無論是企業(yè)的經(jīng)理人員、債權人、還是股東(投資者),都非常關心企業(yè)的盈利能力,并重視對利潤率及其變動趨勢的分析與預測。4、盈利能力指標計算根據(jù)盈利能力指標計算數(shù)據(jù)要求,分別從資產(chǎn)負債表和利潤表中對應列讀取相關數(shù)據(jù),進行計算,并對計算結果進行輸出。5、發(fā)展能力分析發(fā)展能力通常是指企業(yè)未來生產(chǎn)經(jīng)營活動的發(fā)展趨勢和發(fā)展?jié)摿?,也即增長能力,它是企業(yè)通過自身的生產(chǎn)經(jīng)營活動,不斷擴大積累而形成的發(fā)展?jié)撃?。從形成看,企業(yè)的發(fā)展能力主要是通過自身的生產(chǎn)經(jīng)營活動,不斷擴大積累而形成的,主要依托于不斷增長的銷售收入、不斷增加的資金投入和不斷創(chuàng)造的利潤等。從結果看,一個發(fā)展能力強的企業(yè),能夠不斷為股東創(chuàng)造財富、增加企業(yè)價值。發(fā)展能力常用營業(yè)收入增長率、凈利潤增長率、資產(chǎn)增長率、資本積累率等指標來反映,主要計算公式如下表所示。表6-4發(fā)展能力主要指標指標計算公式營業(yè)收入增長率(OIGR)=((本年營業(yè)收入-上年營業(yè)收入)/上年營業(yè)收入)×100%凈利潤增長率(NGR)=((本年凈利潤-上年凈利潤)/上年凈利潤)×100%資產(chǎn)增長率(TAGR)=((年末資產(chǎn)總額-年初資產(chǎn)總額)/年初資產(chǎn)總額)×100%資本積累率(CAR)=((年末股東權益總額-年初股東權益總額)/年初股東權益總額)發(fā)展能力分析可以補充和完善傳統(tǒng)財務分析展望未來,是盈利能力、營運能力以及償債能力的綜合體現(xiàn)。為預測分析與價值評估鋪墊提供基礎數(shù)據(jù)來源,十分重要,能滿足相關利益者的決策需求。指標越高,說明增長速度越快或積累率越高,企業(yè)市場前景好,發(fā)展能力強。在評價分析中要注意行業(yè)特征、生命周期及指標滯后性等。6、發(fā)展能力指標計算根據(jù)發(fā)展能力指標計算數(shù)據(jù)要求,分別從資產(chǎn)負債表和利潤表中對應列讀取相關數(shù)據(jù),進行計算,并對計算結果進行輸出。5、練習提高練習給定案例企業(yè)競爭能力指標計算,并進行評價,以理解本節(jié)內容。三、總結通過本次任務的學習和實踐,使我們熟悉了Python在財務數(shù)據(jù)分析中的程序,了解了常用的營運能力、盈利能力及發(fā)展能力分析指標的計算及呈現(xiàn)形式,并且能夠熟練地對分析結果輸出的常用操作方法的實踐操作。企業(yè)財務數(shù)據(jù)分析的內容很多,同學們可以在熟練此分析程序和方法的基礎上,深入展開對償債能力、企業(yè)營運能力、發(fā)展能力等其它能力指標的分析,讓我們感受利用大數(shù)據(jù)資源、python等新技術去分析和評價企業(yè)的價值和樂趣。財務數(shù)據(jù)分析,猶如醫(yī)生把脈問診,分析人員主要是以會計核算和財務報表資料及其他相關資料為依據(jù),采用一系列專門的分析技術和方法,對企業(yè)過去和現(xiàn)在有關籌資營活動、分配活動的盈利能力、營運能力、償債能力和發(fā)展能力等狀況進行行分析與評價的經(jīng)濟管理活動。隨著技術的發(fā)展,以及管理需求的驅動,企業(yè)的財務分析手段更加便捷、及時和精細化,因此,需要分析人員具備嚴謹認真、科學審慎的數(shù)據(jù)思維能力,具備對財務數(shù)據(jù)指標數(shù)據(jù)進行分析解讀的能力,更加需要大數(shù)據(jù)技術與財務會計融合的能力,才能為企業(yè)的管理策略調整提供科學的依據(jù)。作業(yè)布置利用給定的數(shù)據(jù)資源,評價企業(yè)的營運能力、盈利能力及發(fā)展能力分析與評價。教學反思教師總結本次課的知識點,重點強調利用Python語言進行企業(yè)競爭能力分析評價。結合教學重點和難點,對所學知識進一步強化。Python程序設計工作手冊式教材教案專業(yè)名稱:課程名稱:Python程序設計任課班級:教師姓名:所屬院系:職稱:課時:64使用教材:

情景一獲取電子商務數(shù)據(jù)教學課題電子商務爬蟲基礎序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:了解urllib、Requests后,抓取一個靜態(tài)網(wǎng)頁并保存。知識目標:認識網(wǎng)絡爬蟲、了解基于urllib庫的網(wǎng)絡爬蟲和應用范圍。素質目標:接受新知識、自主學習的能力。教學重點urllib模塊教學難點request的構造方法教學過程設計備注一、電子商務數(shù)據(jù)獲取方法概述介紹數(shù)據(jù)相關知識;介紹電子商務爬蟲的作用;介紹爬蟲框架以及爬蟲的限制等。二、教學內容(一)爬蟲的流程爬蟲就是一個獲取網(wǎng)頁的自動化程序。1.獲取網(wǎng)頁爬蟲首先要做的工作就是獲取網(wǎng)頁,這里就是獲取網(wǎng)頁的源代碼。源代碼里包含了網(wǎng)頁的部分有用信息,所以只要把源代碼獲取下來,就可以從中提取想要的信息了。2.提取信息獲取網(wǎng)頁的源代碼后,接下來就是分析網(wǎng)頁的源代碼,從中提取我們想要的數(shù)據(jù)。首先,最通用的方法便是采用正則表達式提取,這是一個萬能的方法,但是在構造正則表達式時比較復雜且容易出錯。3.保存數(shù)據(jù)提取信息后,我們一般會將提取到的數(shù)據(jù)保存到某處以便后續(xù)使用。這里保存形式有多種多樣,如可以簡單保存為TXT文本或JSON文本,也可以保存到數(shù)據(jù)庫,如MySQL和MongoDB等,還可保存至遠程服務器,如借助SFTP進行操作等。4.自動化程序說到自動化程序,意思是說爬蟲可以代替人來完成這些操作。(二)能爬怎樣的數(shù)據(jù)在網(wǎng)頁中都有各自的URL,是基于HTTP或HTTPS協(xié)議的,只要是這種數(shù)據(jù),爬蟲都可以抓取。1.urllib模塊Pythonurllib庫用于操作網(wǎng)頁URL,并對網(wǎng)頁的內容進行抓取處理。urllib庫的基本模塊如圖7-1所示。圖7-1urllib庫模塊urllib每個模塊的基本功能如表7-1所示。表7-1urllib模塊功能序號方法功能1urllib.request打開和讀取URL2urllib.error包含urllib.request拋出的異常3urllib.parse解析URL4urllib.robotparser解析robots.txt文件(1)發(fā)送請求使用urllib的request模塊,可以方便地實現(xiàn)請求的發(fā)送并得到響應。urlopenurllib.request模塊提供了最基本的構造HTTP請求的方法。格式:urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)參數(shù)說明data參數(shù)是可選的。如果要添加該參數(shù),需要使用

bytes

方法將參數(shù)轉化為字節(jié)流編碼格式的內容,即

bytes

類型。另外,如果傳遞了這個參數(shù),則它的請求方式就不再是GET方式,而是POST方式?!緦嵗孔x取重慶城市職業(yè)學院主頁html源碼fromurllib.requestimporturlopenmyURL=urlopen("/")print(myURL.read().decode('utf-8'))運行結果如圖7-2所示。圖7-2讀取主頁html源碼的運行結果每次調用urllib.requests請求方法之后,會返回一個response對象,該對象包含了具體的響應信息如表7-2所示。表7-2響應信息屬性或方法說明apparent_encoding編碼方式close()關閉與服務器的連接content返回響應的內容,以字節(jié)為單位cookies返回一個CookieJar對象,包含了從服務器發(fā)回的cookieelapsed返回一個timedelta對象,包含了從發(fā)送請求到響應到達之間經(jīng)過的時間量,可以用于測試響應速度。比如r.elapsed.microseconds表示響應到達需要多少微秒。encoding解碼r.text的編碼方式headers返回響應頭,字典格式history返回包含請求歷史的響應對象列表(url)is_permanent_redirect如果響應是永久重定向的url,則返回True,否則返回Falseis_redirect如果響應被重定向,則返回True,否則返回Falseiter_content()迭代響應iter_lines()迭代響應的行json()返回結果的JSON對象(結果需要以JSON格式編寫的,否則會引發(fā)錯誤)links返回響應的解析頭鏈接next返回重定向鏈中下一個請求的PreparedRequest對象ok檢查"status_code"的值,如果小于400,則返回True,如果不小于400,則返回Falseraise_for_status()如果發(fā)生錯誤,方法返回一個HTTPError對象reason響應狀態(tài)的描述,比如"NotFound"或"OK"request返回請求此響應的請求對象status_code返回http的狀態(tài)碼,比如404和200(200是OK,404是NotFound)text返回響應的內容,unicode類型數(shù)據(jù)url返回響應的URLRequest利用

urlopen

方法可以實現(xiàn)最基本請求的發(fā)起,但這幾個簡單的參數(shù)并不足以構建一個完整的請求。更多說明參考官方文檔/3/library/urllib.request.html。Request常見方法如表7-3所示。表7-3Request常見方法方法描述delete(url,

args)發(fā)送DELETE請求到指定urlget(url,

params,args)發(fā)送GET請求到指定urlhead(url,

args)發(fā)送HEAD請求到指定urlpatch(url,

data,args)發(fā)送PATCH請求到指定urlpost(url,

data,json,args)發(fā)送POST請求到指定urlput(url,

data,args)發(fā)送PUT請求到指定urlrequest(method,

url,

args)向指定的url發(fā)送指定的請求方法【實例】使用request讀取重慶城市職業(yè)學院主頁html代碼importurllib.requestrequest=urllib.request.Request('/')response=urllib.request.urlopen(request)print(response.read().decode('utf-8'))Request的構造方法如下:classurllib.request.Request(url,data=None,headers={},origin_req_host=None,unverifiable=False,method=None)第一個參數(shù)

url

用于請求URL,這是必傳參數(shù),其他都是可選參數(shù)。第二個參數(shù)

data

如果要傳,必須傳

bytes(字節(jié)流)類型的。如果它是字典,可以先用

urllib.parse

模塊里的

urlencode()

編碼。第三個參數(shù)

headers

是一個字典,它就是請求頭。我們在構造請求時,既可以通過

headers

參數(shù)直接構造,也可以通過調用請求實例的

add_header()

方法添加。添加請求頭最常用的方法就是通過修改

User-Agent

來偽裝瀏覽器。默認的

User-Agent

Python-urllib,可以通過修改它來偽裝瀏覽器。第四個參數(shù)

origin_req_host

指的是請求方的host名稱或者IP地址。第五個參數(shù)

unverifiable

表示這個請求是否是無法驗證的,默認是

False,表示用戶沒有足夠權限來選擇接收這個請求的結果。第六個參數(shù)

method

是一個字符串,用來指示請求使用的方法,比如GET、POST和PUT等?!緦嵗坷脺y試網(wǎng)站檢測post方法fromurllibimportrequest,parseurl='/post'headers={'User-Agent':'Mozilla/4.0(compatible;MSIE5.5;WindowsNT)','Host':''}dict={'name':'germey'}data=bytes(parse.urlencode(dict),encoding='utf-8')req=request.Request(url=url,data=data,headers=headers,method='POST')response=request.urlopen(req)print(response.read().decode('utf-8'))(2)處理異常urllib的error模塊定義了由request模塊產(chǎn)生的異常。如果出現(xiàn)了問題,request模塊便會拋出error模塊中定義的異常。URLErrorURLError

類來自urllib庫的error模塊,它繼承自

OSError

類,是error異常模塊的基類,由request模塊產(chǎn)生的異常都可以通過捕獲這個類來處理。它具有一個屬性

reason,即返回錯誤的原因?!緦嵗坑脺y試網(wǎng)站捕獲異常importsocketimporturllib.requestimporturllib.errortry:response=urllib.request.urlopen('/get',timeout=0.1)excepturllib.error.URLErrorase:ifisinstance(e.reason,socket.timeout):print('TIMEOUT')(3)解析鏈接urllib.parse模塊,它定義了處理URL的標準接口。urlparse該方法可以實現(xiàn)URL的識別和分段。fromurllib.parseimporturlparseresult=urlparse('/index.html;user?id=5#comment')print(type(result))print(result)urlparse

方法拆分成了6個部分。大體觀察可以發(fā)現(xiàn),解析時有特定的分隔符。比如,://

前面的就是

scheme,代表協(xié)議;第一個

/

符號前面便是

netloc,即域名,后面是

path,即訪問路徑;分號

;

后面是

params,代表參數(shù);問號

?

后面是查詢條件

query,一般用作GET類型的URL;井號

#

后面是錨點,用于直接定位頁面內部的下拉位置。urlunparse有了

urlparse

方法,相應地就有了它的對立方法

urlunparse。它接收的參數(shù)是一個可迭代對象,但是它的長度必須是6,否則會拋出參數(shù)數(shù)量不足或者過多的問題。fromurllib.parseimporturlunparsedata=['https','','index.html','user','a=6','comment']print(urlunparse(data))運行結果如下:/index.html;user?a=6#comment這樣我們就成功實現(xiàn)了URL的構造。urlsplit這個方法和

urlparse

方法非常相似,只不過它不再單獨解析

params

這一部分,只返回5個結果。urlunsplit與

urlunparse

方法類似,它也是將鏈接各個部分組合成完整鏈接的方法,傳入的參數(shù)也是一個可迭代對象,例如列表、元組等,唯一的區(qū)別是長度必須為5。urljoin有了

urlunparse

urlunsplit

方法,我們可以完成鏈接的合并,不過前提是必須要有特定長度的對象,鏈接的每一部分都要清晰分開。urlencode它在構造GET請求參數(shù)的時候非常有用。fromurllib.parseimporturlencodeparams={'name':'germey','age':25}base_url='?'url=base_url+urlencode(params)print(url)這里首先聲明一個字典來將參數(shù)表示出來,然后調用

urlencode

方法將其序列化為GET請求參數(shù)。運行結果如下:?name=germey&age=25有時為了更加方便地構造參數(shù),我們會事先用字典來表示。要轉化為URL的參數(shù)時,只需要調用該方法即可。parse_qs有了序列化,必然就有反序列化。如果我們有一串GET請求參數(shù),利用

parse_qs

方法,就可以將它轉回字典。fromurllib.parseimportparse_qsquery='name=germey&age=25'print(parse_qs(query))parse_qsl另外,還有一個

parse_qsl

方法,它用于將參數(shù)轉化為元組組成的列表。fromurllib.parseimportparse_qslquery='name=germey&age=25'print(parse_qsl(query))quote該方法可以將內容轉化為URL編碼的格式。URL中帶有中文參數(shù)時,有時可能會導致亂碼的問題,此時可以用這個方法可以將中文字符轉化為URL編碼。fromurllib.parseimportquotekeyword='壁紙'url='/s?wd='+quote(keyword)print(url)unquote有了

quote

方法,當然還有

unquote

方法,它可以進行URL解碼。fromurllib.parseimportunquoteurl='/s?wd=%E5%A3%81%E7%BA%B8'print(unquote(url))(4)分析Robots協(xié)議Robots協(xié)議也稱作爬蟲協(xié)議、機器人協(xié)議,它的全名叫作網(wǎng)絡爬蟲排除標準(RobotsExclusionProtocol),用來告訴爬蟲和搜索引擎哪些頁面可以抓取,哪些不可以抓取。它通常是一個叫作robots.txt的文本文件,一般放在網(wǎng)站的根目錄下。一個robots.txt的樣例:User-agent:*Disallow:/Allow:/public/這實現(xiàn)了對所有搜索爬蟲只允許爬取public目錄的功能,將上述內容保存成robots.txt文件,放在網(wǎng)站的根目錄下,和網(wǎng)站的入口文件放在一起。User-agent

描述了搜索爬蟲的名稱,將其設置為

*

則代表該協(xié)議對任何爬取爬蟲有效;Disallow

指定了不允許抓取的目錄;Allow

一般和

Disallow

一起使用,一般不會單獨使用,用來排除某些限制。三、總結通過本次任務的學習和實踐,我們了解了Python電子商務爬蟲的基本模塊,能夠使用標準的urllib庫,爬取學校的官方網(wǎng)站。同時建議大家樹立爬取與反爬取的意識,遵守爬蟲協(xié)議,在實際工作中,盡量少用多線程爬蟲。作業(yè)布置使用urllib庫,爬取網(wǎng)頁教學反思教師總結本次課的知識點,重點強調爬蟲的優(yōu)點和應用領域,突出Python爬蟲在數(shù)據(jù)采集中的重要性和應用性,從而提高同學們的學習興趣。結合教學重點和難點,對所學知識進一步強化。情景一獲取電子商務數(shù)據(jù)主題爬取京東商城“筆記本電腦”數(shù)據(jù)序號2課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:會分析網(wǎng)頁結構,能夠在PyCharm集成開發(fā)環(huán)境中,編寫程序實現(xiàn)京東商城數(shù)據(jù)爬取。知識目標:了解并會安裝python爬蟲庫;安裝excel庫;運行Python爬蟲程序。素質目標:接受新知識、自主學習的能力。教學重點網(wǎng)頁結構分析,瀏覽器F12功能教學難點頁面標簽分析教學過程設計備注一、復習上一節(jié)上課內容并引出本節(jié)上課內容urllib庫的基本內容,網(wǎng)頁的解析,簡單爬取網(wǎng)頁的方法。本次課我們一起來學習讓Python幫我們收集我們感興趣的數(shù)據(jù)。二、教學內容(一)安裝爬蟲庫1.安裝爬蟲庫PipinstallrequestsPipinstallselectorsPipinstalllxml2.安裝excel文件庫Pipinstallopenpyxl(二)分析網(wǎng)頁結構1.查看網(wǎng)頁在googlechrome瀏覽器中輸入:。再在京東商城提供的搜索框輸入:筆記本,顯示結果如圖7-3所示。圖7-3京東搜索頁面在圖7-3所示中,筆記本電腦的品牌很多,為了更進一步獲取數(shù)據(jù),把品牌點擊為聯(lián)想。最后簡化的界面如圖7-4所示。圖7-4品牌為聯(lián)想的筆記本電腦把這個頁面的鏈接取出/search?keyword=筆記本&suggest=1.his.0.0&wq=筆記本&ev=exbrand_聯(lián)想(lenovo)%5E注意地址是分2次復制后手工拼接而成。2.分析網(wǎng)頁標簽在瀏覽器里面按F12,分析網(wǎng)頁標簽。如圖7-5所示,可以看到商品數(shù)據(jù)對應的網(wǎng)頁標簽。圖7-5商品與對應的標簽通過圖7-5,可以看到在class標簽id=J_goodsList里ul標簽下的li標簽,對應著所有商品列表。如p-price對應價格;p-name對應商品標題;p-commit對應評價。3.爬取數(shù)據(jù)importrequestsimportselectorsfromlxmlimportetreeurl=/search?keyword=筆記本&wq=筆記本&ev=exbrand_聯(lián)想%5E&page=9&s=241&click=1headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/86.0.4240.198Safari/537.36'}res=requests.get(url,headers=headers)res.encoding='utf-8'text=res.textselector=etree.HTML(text)list=selector.xpath('//*[@id="J_goodsList"]/ul/li')foriinlist:title=i.xpath('.//div[@class="p-namep-name-type-2"]/a/em/text()')[0]price=i.xpath('.//div[@class="p-price"]/strong/i/text()')[0]product_id=i.xpath('.//div[@class="p-commit"]/strong/a/@id')[0].replace("J_comment_","")print("title"+str(title))

print("price="+str(price))

print("product_id="+str(product_id))print("")程序運行后的結果如圖7-6所示。圖7-6獲取商品數(shù)據(jù)4.獲取評論數(shù)據(jù)在網(wǎng)頁中,商品的評論數(shù)據(jù)無法直接捕獲,要通過分析網(wǎng)頁的URL。在F12對應的界面中,轉到network頁,找到以“productCommentSummaries.action”開頭的項目,如圖7-7所示。在圖7-7中,把對應的URL地址取出并放到瀏覽器中執(zhí)行,得到的頁面就是所有商品ID以及對應的評論數(shù)據(jù),如圖7-8所示。圖7-7productCommentSummaries.action圖7-8商品評論數(shù)據(jù)在圖7-8所示的界面中,可以把url地址中的refernceIds=后的IP只保留1個,把地址修改為以下形式:/comment/productCommentSummaries.action?referenceIds=10060141190483&callback=jQuery5358031&_=1667631915528在取不同商品的評論數(shù)據(jù)時,把商品的ID進行更換即可。Callback后的數(shù)據(jù)會根據(jù)情況不同有所變化,利用函數(shù)來完成要改成實際值。defcommentcount(product_id):url1=“/comment/productCommentSummaries.action?referenceIds=”+str(rpoduct_id)+”&callback=jQuery5358031&_=1667631915528”res1=requests.get(url1,headers=headers)res1.encoding='gbk'text1=(res1.text).replace("jQuery5358031(","").replace(");","")text1=json.loads(text1)comment_count=text1['CommentsCount'][0]['CommentCountStr']comment_count=comment_count.replace("+","")if"萬"incomment_count:comment_count=comment_count.replace("萬","")comment_count=str(int(comment_count)*10000)returncomment_countforiinlist:title=i.xpath('.//div[@class="p-namep-name-type-2"]/a/em/text()')[0]price=i.xpath('.//div[@class="p-price"]/strong/i/text()')[0]product_id=i.xpath('.//div[@class="p-commit"]/strong/a/@id')[0].replace("J_comment_","")comment_count=commentcount(product_id)print("title"+str(title))print("price="+str(price))print("comment_count="+str(comment_count))程序運行結果如圖7-9所示。圖7-9獲取評論數(shù)5.保存到excelimportopenpyxloutwb=openpyxl.Workbook()outws=outwb.create_sheet(index=0)outws.cell(row=1,column=1,value="index")outws.cell(row=1,column=2,value="title")outws.cell(row=1,column=3,value="price")outws.cell(row=1,column=4,value="CommentCount")count=2foriinlist:title=i.xpath('.//div[@class="p-namep-name-type-2"]/a/em/text()')[0]price=i.xpath('.//div[@class="p-price"]/strong/i/text()')[0]product_id=i.xpath('.//div[@class="p-commit"]/strong/a/@id')[0].replace("J_comment_","")comment_count=commentcount(product_id)print("title"+str(title))print("price="+str(price))print("comment_count="+str(comment_count))outws.cell(row=count,column=1,value=str(count-1))outws.cell(row=count,column=2,value=str(title))outws.cell(row=count,column=3,value=str(price))outws.cell(row=count,column=4,value=str(comment_count))count+=1outwb.save("jdgood.xls")三、總結通過本次任務的學習和實踐,掌握了電子商務網(wǎng)站數(shù)據(jù)的爬取。并且能夠熟練使用瀏覽器的F12功能,對網(wǎng)頁進行跟蹤。同時了解了數(shù)據(jù)的重要性,能夠對數(shù)據(jù)進行保存。在實際操作過程中,了解了團隊合作在整個數(shù)據(jù)采集中的作用。作業(yè)布置爬取京東商城“手機”的相關數(shù)據(jù)。教學反思教師指出學生實踐中可能出錯和已經(jīng)出錯的地方,結合教學重點和難點,對所學知識進一步強化。情景二電子商務數(shù)據(jù)分析主題商務數(shù)據(jù)分析基礎序號3課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:掌握商務數(shù)據(jù)分析的方法。知識目標:了解數(shù)據(jù)清洗的過程,了解常用的分析算法素質目標:接受新知識、自主學習的能力。教學重點數(shù)據(jù)清洗教學難點數(shù)據(jù)分析算法算法教學過程設計備注一、引導本節(jié)上課內容對電商運營數(shù)據(jù)進行分析,發(fā)現(xiàn)問題,了解運營狀況,對未來發(fā)展趨勢進行預測。二、教學內容(一)數(shù)據(jù)預處理1.數(shù)據(jù)清洗數(shù)據(jù)清洗就是把“臟”的“洗掉”,指發(fā)現(xiàn)并糾正數(shù)據(jù)文件中可識別的錯誤的最后一道程序,包括檢查數(shù)據(jù)一致性,處理無效值和缺失值等。缺失值處理檢測與處理缺失值。使用describe()查看數(shù)據(jù)后缺失情況。使用pandas的isnull()、notnull()進行檢測與判斷。使用dropna()刪除缺失值,fillna(mean()|median()|mode())對缺失值進行插補。(1)讀取數(shù)據(jù)并查看缺失比例,如圖7-10所示。圖7-10讀取數(shù)據(jù)并查看缺失比例(2)空值處理方式,如圖7-11、7-12、7-13、7-14、7-15所示。圖7-11空值處理方式之直接刪除圖7-12空值處理方式之刪除空值列圖7-13空值處理方式之判斷空值圖7-14空值處理方式之缺失值使用固定值填充圖7-15空值處理方式之用眾數(shù)填充異常值處理異常值指那些偏離正常范圍的值,不是錯誤值。一般使用箱線圖進行處理,如圖7-16所示。圖7-16異常值處理(1)讀取并轉換數(shù)據(jù),如圖7-17所示。圖7-17讀取并轉換數(shù)據(jù)(2)定義箱線圖上下限,如圖7-18所示。圖7-18定義箱線圖上下限(3)畫出箱線圖,如圖7-19所示。圖7-19畫出箱線圖(4)對照查看分布,如圖7-20所示。圖7-20對照查看分布重復值處理一般使用drop_duplicates()方法。注意以下情況不建議去重。(1)重復的記錄用于分析事物的演變規(guī)律。(2)重復的記錄用于樣本不均衡處理。(3)重復的記錄用于檢測業(yè)務規(guī)則問題。(1)讀取數(shù)據(jù)并顯示表頭,如圖7-21所示。importnumpyasnpimportpandasaspddata=pd.read_csv(r'MotorcycleData.csv',encoding='gbk',na_values='Na')data.head(2)圖7-21讀取數(shù)據(jù)并顯示表頭(2)轉換數(shù)據(jù)類型,如圖7-22所示。#自定義函數(shù)用于把價格字段轉換為floatdefstrtofloat(x):if'$'instr(x):x=str(x).strip('$')x=str(x).replace(',','')else:x=str(x).replace(',','')returnfloat(x)data['Mileage']=data['Mileage'].apply(strtofloat)data['Price']=data['Price'].apply(strtofloat)圖7-22轉換數(shù)據(jù)類型(3)查看是否有重復值,如圖7-23所示。data.duplicated()print("是否有重復值:\n",any(data.duplicated()))圖7-23查看是否有重復值(4)刪除重復值,如圖7-24所示。data=data.drop_duplicates()#刪除重復值print("是否有重復值:\n",any(data.duplicated()))#再次查看是否有重復值圖7-24刪除重復值(二)數(shù)據(jù)標準化離差標準化離差標準化也叫Min-Max規(guī)范化,離差是最大值和最小值的差,用于消除大單位和小單位的影響(消除量綱)變異大小的差異影響;Min-Max規(guī)范化是將原始數(shù)據(jù)變換到[0,1]的空間中。公式:X1=(X-min)/(max-min);X當前的數(shù)據(jù);(1)讀取數(shù)據(jù)importnumpyasnpimportpandasaspddata=pd.read_csv(r'MotorcycleData.csv',encoding='gbk',na_values='Na')(2)定義離差標準化函數(shù),如圖7-25所示。defstrtofloat(x):if'$'instr(x):x=str(x).strip('$')x=str(x).replace(',','')else:x=str(x).replace(',','')returnfloat(x)data['Mileage']=data['Mileage'].apply(strtofloat)data['Price']=data['Price'].apply(strtofloat)defminmaxscale(Data):Data=(Data-Data.min())/(Data.max()-Data.min())returnData圖7-25定義離差標準化函數(shù)(3)對數(shù)據(jù)進行標準化,如圖7-26所示。data1=minmaxscale(data['Mileage'])data2=minmaxscale(data

['Price'])data3=pd.concat([data1,data2],axis=1)print('離差標準化之前里程和單價數(shù)據(jù)為:\n',

data[['Mileage','Price']].head())print('離差標準化之后里程和單價數(shù)據(jù)為:\n',data3.head())圖7-26對數(shù)據(jù)進行標準化(4)調用機器學習庫進行標準化,如圖7-27所示。fromsklearnimportpreprocessingpreprocessing.minmax_scale(data['Price'])圖7-27調用機器學習庫進行標準化標準差標準化標準差標準化也叫Z-score規(guī)范化,用于消除單位影響及自身變量的差異。假設A與B的考試成績都為80分,A的考卷滿分是100分(及格60分),B的考卷滿分是500分(及格300分)。雖然兩個人都考了80分,但是A的80分與B的80分代表完全不同的含義。公式:X1=(X-平均數(shù))/標準差(std)(零-均值標準化)(1)讀取數(shù)據(jù)importnumpyasnpimportpandasaspddata=pd.read_csv(r'MotorcycleData.csv',encoding='gbk',na_values='Na')(2)定義標準差標準化函數(shù)defstrtofloat(x):if'$'instr(x):x=str(x).strip('$')x=str(x).replace(',','')else:x=str(x).replace(',','')returnfloat(x)data['Mileage']=data['Mileage'].apply(strtofloat)data['Price']=data['Price'].apply(strtofloat)defStandardScaler(Data):Data=(Data-Data.mean())/Data.std()returnData(3)對數(shù)據(jù)進行標準化,如圖7-28所示。data1=StandardScaler(data['Mileage'])data2=StandardScaler(data['Price'])data3=pd.concat([data1,data2],axis=1)print('標準差標準化之前里程和單價數(shù)據(jù)為:\n',data[['Mileage','Price']].head())print('標準差標準化之后里程和單價數(shù)據(jù)為:\n',data3.head())圖7-28對數(shù)據(jù)進行標準化(4)調用機器學習庫進行標準化,如圖7-29所示。from

sklearn

import

preprocessingpreprocessing.scale(data['Price'])圖7-29調用機器學習庫進行標準化(三)描述性統(tǒng)計分析基本術語1.數(shù)據(jù)類型截面數(shù)據(jù):對多個個體在相同或近似相同的同一時間節(jié)點上搜集的數(shù)據(jù)時間序列數(shù)據(jù):某個個體在一段時間內搜集到的數(shù)據(jù)集面板數(shù)據(jù):既有截面維度又有時間維度的混合數(shù)據(jù)集,可分為平衡面板數(shù)據(jù)、非平衡面板數(shù)據(jù)2.數(shù)據(jù)的位置度量平均值:是衡量數(shù)據(jù)的中心位置的重要指標,反映了一些數(shù)據(jù)必然性的特點,包括算術平均值、加權算術平均值、調和平均值和幾何平均值。加權平均數(shù):當觀測值具有不同的權重(重要性),使用加權平均數(shù)幾何平均數(shù):也是數(shù)據(jù)位置的一種度量,但它是n個數(shù)值乘積的n次方根。在財經(jīng)領域中,幾何平均數(shù)常用于分析財務數(shù)據(jù)的年、季度、月、周的平均變化率。中位數(shù):是另外一種反映數(shù)據(jù)的中心位置的指標,其確定方法是將所有數(shù)據(jù)以由小到大的順序排列,位于中央的數(shù)據(jù)值就是中位數(shù)。眾數(shù):是指在數(shù)據(jù)中發(fā)生頻率最高的數(shù)據(jù)值。(四)探索性數(shù)據(jù)分析1.統(tǒng)計檢驗統(tǒng)計檢驗,如圖7-30所示,用于檢驗數(shù)據(jù)是否符合正態(tài)性分布。importscipy.statsasssnorm_data=ss.norm.rvs(loc=0,scale=1,size=int(10e6))#loc為均值,scale為標準差,size為生成數(shù)據(jù)個數(shù),可以為元組ss.normaltest(norm_data)圖7-30統(tǒng)計檢驗2.卡方檢驗卡方檢驗,如圖7-31所示,常用作檢驗兩個樣本數(shù)據(jù)之間是否有較強聯(lián)系。ss.chi2_contingency([[15,95],[85,5]])圖7-31卡方檢驗3.獨立分布t檢驗獨立分布t檢驗,如圖7-32所示,常用作比較均值是否有相異性,不要求兩個樣本之間數(shù)據(jù)量一致。ss.ttest_ind(ss.norm.rvs(size=500),ss.norm.rvs(size=1000))圖7-32獨立分布t檢驗4.方差檢驗方差檢驗,如圖7-33所示,常用作檢驗多組樣本數(shù)據(jù)之間的均值是否有差異。ss.f_oneway(ss.norm.rvs(size=5000),ss.norm.rvs(size=10000),ss.norm.rvs(size=5000))圖7-33方差檢驗5.Q-Q圖橫軸為:標準分布的分位數(shù)值(默認為正態(tài)分布)縱軸為:已知分布的分位數(shù)的值數(shù)據(jù)集中在對角線上則說明越符合正態(tài)分布,Q-Q圖如圖7-34所示。fromstatsmodels.graphics.apiimportqqplotimportmatplotlib.pyplotaspltqqplot(ss.norm.rvs(size=50))#plt.close()plt.show()圖7-34Q-Q圖6.相關系數(shù)pearson相關系數(shù)和具體數(shù)值有關,spearman相關系數(shù)和名次差有關,運用于相對比較的情況,如圖7-35所示。s1=pd.Series(np.random.randn(10))s2=pd.Series(np.random.randn(10))s1.corr(s2,method="spearman")df=pd.DataFrame(np.array([s1,s2]).T)df.corr()圖7-35相關系數(shù)三、總結通過本次任務的學習和實踐,我們了解了數(shù)據(jù)分析之前要做的任務:數(shù)據(jù)清洗、數(shù)據(jù)標準化;了解數(shù)據(jù)的分析方法。能夠對比使用公式的方式和使用機器學習庫的方式對數(shù)據(jù)進行分析與標準化。這正如牛頓所說:“如果說我比別人看得更遠些,那是因為我站在了巨人的肩上”。作業(yè)布置1.使用機器學習庫實現(xiàn)數(shù)據(jù)的標準化2.畫出數(shù)據(jù)的箱線圖。教學反思情景二電子商務數(shù)據(jù)分析主題RFM模型序號4課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠對給定的數(shù)據(jù)進行數(shù)據(jù)清洗,能夠根據(jù)需要對數(shù)據(jù)進行初加工。知識目標:了解數(shù)據(jù)類型轉換,了解RFM相關數(shù)據(jù)的意義素質目標:接受新知識、自主學習的能力。教學重點根據(jù)要求清洗數(shù)據(jù)教學難點RFM模型的實現(xiàn)教學過程設計備注一、復習上一節(jié)上課內容并引出本節(jié)上課內容數(shù)據(jù)清洗、標準化等是對數(shù)據(jù)進行基本整理的過程,所有拿到的數(shù)據(jù)都要經(jīng)過本步驟。數(shù)據(jù)清洗完成后,我們能夠怎么利用呢?二、教學內容(一)數(shù)據(jù)準備數(shù)據(jù)來源于數(shù)據(jù)科學競賽平臺Kaggle,網(wǎng)址為/jr2ngb/superstore-data,總共51290條數(shù)據(jù),24個字段。超市數(shù)據(jù)字段屬性如表7-4所示。表7-4數(shù)據(jù)字段屬性表序號字段名字段屬性說明0RowID行編號1OrderID訂單號2OrderDate訂單日期3ShipDate發(fā)貨日期4ShipMode發(fā)貨

溫馨提示

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

評論

0/150

提交評論