大數(shù)據(jù)審計(基于Python) 課件 第三章 Python科學(xué)計算與表格處理_第1頁
大數(shù)據(jù)審計(基于Python) 課件 第三章 Python科學(xué)計算與表格處理_第2頁
大數(shù)據(jù)審計(基于Python) 課件 第三章 Python科學(xué)計算與表格處理_第3頁
大數(shù)據(jù)審計(基于Python) 課件 第三章 Python科學(xué)計算與表格處理_第4頁
大數(shù)據(jù)審計(基于Python) 課件 第三章 Python科學(xué)計算與表格處理_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章Python科學(xué)計算與表格處理1(Python科學(xué)計算2(表格處理目錄Python科學(xué)計算1paneldata面板數(shù)據(jù)Pandas庫在計算機編程中,Pandas是Python編程語言的用于數(shù)據(jù)操縱和分析的軟件庫,其名字衍生自術(shù)語"paneldata"(面板數(shù)據(jù))和"Pythondataanalysis"(Python數(shù)據(jù)分析)。Pandas是基于NumPy的一種工具,提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,是一個強大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集。Pandas主要用于數(shù)據(jù)分析。Pandas的數(shù)據(jù)幀允許操縱各種數(shù)據(jù)文件格式,比如導(dǎo)入導(dǎo)出CSV、JSON、SQL、HDF5和導(dǎo)入MicrosoftExcel等。Pandas允許各種數(shù)據(jù)操縱運算操作比如歸并、再成形、選擇,還有數(shù)據(jù)清洗和數(shù)據(jù)加工特征。Pandas廣泛應(yīng)用在學(xué)術(shù)、金融、統(tǒng)計學(xué)等各個數(shù)據(jù)分析領(lǐng)域。PythondataanalysisPython數(shù)據(jù)分析Pandas安裝和導(dǎo)入安裝Pandas需要的基礎(chǔ)環(huán)境是Python,開始前需安裝Python和Pip,Python2.7.9+或Python3.4+以上版本都自帶pip工具。使用pip安裝pandas: pipinstallpandas查看pandas版本:importpandaspandas.__version__導(dǎo)入pandas一般使用別名pd來代替: importpandasaspdPandas-數(shù)據(jù)結(jié)構(gòu)SeriesSeries是一種一維數(shù)組,與Python基本的數(shù)據(jù)結(jié)構(gòu)List相近。它由一組數(shù)據(jù)(各種Numpy數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成,字符串、boolean值、數(shù)字等都能保存在Series中。DataFrameDataFrame是一個二維的表格型數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾型值)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共同用一個索引)。Pandas-DataFrameDataFrame構(gòu)造方法如下:pandas.DataFrame(data,index,columns,dtype,copy)參數(shù)說明:data:一組數(shù)據(jù)(ndarray、series、map、lists、dict等類型);index:行索引值,默認(rèn)為RangeIndex(0,1,2,…,n);columns:列索引,默認(rèn)為RangeIndex(0,1,2,…,n);dtype:數(shù)據(jù)類型;copy:拷貝數(shù)據(jù),默認(rèn)為False。NumPy庫NumPy(NumericalPython)是Python語言的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫。NumPy的核心功能是ndarray(即n-dimensionalarray,多維數(shù)組)數(shù)據(jù)結(jié)構(gòu)。這是一個表示多維度、同質(zhì)并且固定大小的數(shù)組對象。而由一個與此數(shù)組相關(guān)系的資料類型對象來描述其數(shù)組元素的資料格式(例如其字符組順序、在存儲器中占用的字符組數(shù)量、整數(shù)或者浮點數(shù)等等)。NumPy安裝和導(dǎo)入NumPy的安裝和導(dǎo)入和Pandas的安裝和導(dǎo)入類似。使用pip安裝numpy:

pipinstallnumpy查看numpy版本: importnumpy numpy.__version__導(dǎo)入numpy一般使用別名np來代替: importnumpyasnpPipelinePipeline這個單詞在深度學(xué)習(xí)中經(jīng)常出現(xiàn)。Pipeline,中文意為管線,意義等同于流水線。直白的說就是一套流程工序,專業(yè)一點就叫綜合解決方案。Pipeline處理機制就像是把所有模型塞到一個管子里,然后依次對數(shù)據(jù)進行處理,得到最終的分類結(jié)果。例子1,最典型的就是Gpu渲染管線,它指渲染一個畫面需要經(jīng)過多少到工序。例子2,爬蟲框架里面,它指某個項目或者框架里面需要用到流水線的設(shè)計來簡化設(shè)計,降低復(fù)雜度并提高性能,是一種設(shè)計方法,是我們將現(xiàn)實中的社會分工借鑒并運用到計算機編程的例子。例子3,算法或者大數(shù)據(jù)分析里的可重復(fù)使用,針對新的數(shù)據(jù),直接輸入數(shù)據(jù),可以得到結(jié)果的過程。表格處理2讀取表格文件/pandas-docs/stable/reference/api/pandas.read_excel.html前面介紹了pandas可以操縱各種數(shù)據(jù)文件格式。我們處理主要是對表格數(shù)據(jù)進行操作。一種是Excel文件,數(shù)據(jù)格式多為xlsx,另一種是csv格式的數(shù)據(jù)文件。read_excel()函數(shù):用于讀取Excel具體sheet頁的數(shù)據(jù),該函數(shù)的返回結(jié)果是一個DataFrame。read_csv()函數(shù):用于讀取csv文件,與read_excel()函數(shù)類似。示例Excel數(shù)據(jù)read_excel()/pandas-docs/stable/reference/api/pandas.read_excel.htmlsheet_name參數(shù)需要讀取的sheet頁的名稱。默認(rèn)讀取第一個sheet頁。#讀取名為“test_data”的Excel的名為“Sheet2”的sheet頁skiprows參數(shù)需要跳過的行數(shù)。默認(rèn)從第一行開始讀取,且把第一行作為標(biāo)題行。如果要跳過第一行,把第二行作為標(biāo)題行,設(shè)置參數(shù)skiprows=1(索引下標(biāo)從0開始)。#讀取名為“test_data”的Excel的名為“Sheet2”的sheet頁header參數(shù)頭標(biāo)題行。默認(rèn)第一行作為頭標(biāo)題。如果要跳過第一行,把第二行作為標(biāo)題行,設(shè)置參數(shù)header=1(索引下標(biāo)從0開始),與參數(shù)skiprows效果一致。#讀取名為“test_data”的Excel的名為“Sheet1”的sheet頁,并跳過開頭說明行header參數(shù)如果不設(shè)置頭標(biāo)題行,則設(shè)置參數(shù)header=None。#讀取名為“test_data”的Excel的名為“Sheet2”的sheet頁,不設(shè)置頭標(biāo)題行skipfooter參數(shù)需要跳過的末尾的行數(shù)。默認(rèn)不跳過。如果要跳過最后兩行,設(shè)置參數(shù)skipfooter=2。#讀取名為“test_data”的Excel的名為“Sheet1”的sheet頁,并跳過末尾說明行usecols參數(shù)需要讀取的列的序號,默認(rèn)全部讀取。序號值可以單獨列舉,也可以使用英文冒號(:)銜接來表示列的范圍。#讀取名為“test_data”的Excel的名為“Sheet1”的sheet頁中,除了amount(lcy)和payment_details之外的其它列的數(shù)據(jù)names參數(shù)按原始數(shù)據(jù)列的先后順序為列重新命名,['列名1','列名2',……])。#讀取名為“test_data”的Excel的名為“Sheet1”的sheet頁,并為其列重新命名names參數(shù)如果names的元素個數(shù)少于列數(shù),則從右往左為列賦予名字names參數(shù)如果names的元素個數(shù)多于列數(shù),則程序報錯。文件路徑方法一文件路徑可以使用絕對路徑也可以使用相對路徑。使用相對路徑時需要把要讀取的Excel文件放到當(dāng)前路徑下。方法二文件路徑中如果使用的是反斜杠(\),則需要在路徑前加“r”,因為在python字符串中反斜杠(\)有轉(zhuǎn)義的含義,如\t可代表TAB,\n代表換行,所以我們需要采取一些方式使得反斜杠(\)不被解讀為轉(zhuǎn)義字符。在路徑前面加r,即保持字符原始值的意思。如:df=pd.read_excel(r'D:\test_data.xlsx')Sheetnamespd.read_excel()返回的是字典類型,其key對應(yīng)的是sheetnames,value對應(yīng)的是相應(yīng)的DataFrame。當(dāng)我們想要獲取一個Excel里面所有sheet頁的名稱時,則需要使用ExcelFile()函數(shù)。pd.ExcelFile()讀取的對象是整個Excel。提升讀取Excel的速度當(dāng)需要在一次數(shù)據(jù)處理的過程中讀取一個Excel多個sheet頁的數(shù)據(jù)時,我們一般會采用在循環(huán)里調(diào)用pd.read_excel()的方法,把sheetname作為變量。但每次執(zhí)行一次pd.read_excel()就會進行一次打開文件和關(guān)閉文件的操作,當(dāng)循環(huán)次數(shù)較大以及文件內(nèi)部數(shù)據(jù)量較大時,會嚴(yán)重影響運行速度。為了提升運行速度,我們在循環(huán)前就保持文件流出于打開的狀態(tài),在循環(huán)后關(guān)閉文件流。#提升讀取excel的速度io=pd.io.excel.ExcelFile(r'文件路徑')for條件句:sheet_na=(給變量賦值)df=pd.read_excel(io,sheet_name=sheet_na)……io.close()表格數(shù)據(jù)的合并與拼接pandas的merge方法是基于共同列,將兩個DataFrame連接起來。merge方法的主要參數(shù):how=連接方法;on=設(shè)置連接的共有列名,可以設(shè)置一列,也可以設(shè)置多列。merge方法的使用語法如下:df3=pd.merge(df1,df2,how='xx',on='xx')join方法基于index連接DataFrame,連接方法有內(nèi)連接、外連接、左連接和右連接,與merge一致。join方法的使用語法如下:new_df3=new_df1.join(new_df2,how='xx')定義dfdf1df2inner內(nèi)連接取共同列的值的交集進行拼接。此處的“交集”可以理解為,連接的左右兩邊取共同列的值相同的行,做乘法。假定共同列的相同值是“A”,左邊此列為A的數(shù)據(jù)有一行,右邊有兩行,那么得到的交集結(jié)果就是1×2=2行。inner內(nèi)連接outer外連接取共同列的值的并集進行拼接。此處的“并集”可以理解為,先對共同列的值取并集,然后根據(jù)并集擴充左右兩邊的DataFrame,比如左邊的共同列的值為“A,B,C”,右邊的共同列的值為“B,C,D”,那么左右都各自擴充一行,左邊擴充的D所在行的其他列的數(shù)據(jù)為NaN,右邊擴充的A所在行的其他列的數(shù)據(jù)為NaN,此時的并集就相當(dāng)于對擴充后的左右兩邊做交集。outer外連接left左連接基于左邊位置DataFrame的列進行連接??梢岳斫鉃橛疫吂餐械闹蹬c左邊相同的行,做乘法。共同列的值左邊有右邊無的行中,與右邊有關(guān)的列的值為NaN。共同列的值右邊有左邊無的行不參與連接。left左連接right右連接右連接,基于右邊位置DataFrame的列進行連接。右連接的邏輯與左連接同理。right右連接輸出到表格文件經(jīng)過數(shù)據(jù)清洗得到的DataFrame可以直接輸出到文件。to_csv()函數(shù)輸出為csv格式的文件,to_excel()函數(shù)輸出為xlsx格式的文件。文件路徑可以是相對路徑也可以是絕對路徑,路徑中要寫明輸出的文件名和文件格式。index=False表示不加索引,默認(rèn)添加索引。輸出位置是當(dāng)前程序文件的同級目錄。輸出到表格文件若產(chǎn)生了一批新的同結(jié)構(gòu)的數(shù)據(jù)(列與列名都相同),可以添加至已有文件的后面。參數(shù)header=False表示不添加列名,參數(shù)mod

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論