




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Pandas數據清洗與函數應用6PandasDataCleaningandFunctionApplication內容概述本章學習目標財務數據分析財務數據分析(1)了解NumPy的NaN;(4)掌握Pandas的函數應用。(3)掌握Pandas的數據清洗方法;(2)掌握Series對象和DataFrame對象的運算操作;目錄CONTENTS財務數據分析財務數據分析第6章Pandas數據清洗與函數應用
6.1Pandas對象的運算與對齊
6.2Pandas數據清洗6.3函數應用
【Python財務數據分析】——財務報表文件數據清洗和運算.
Pandas對象的運算與對齊PartOne01財務數據分析財務數據分析6.1Pandas對象的運算與對齊6.1.1NumPy的NaN6.1Pandas對象的運算與對齊6.1.1NumPy的NaN6.1Pandas對象的運算與對齊6.1.2Series運算6.1Pandas對象的運算與對齊6.1.2Series運算6.1Pandas對象的運算與對齊6.1.3DataFrame運算6.1Pandas對象的運算與對齊6.1.3DataFrame運算Pandas數據清洗PartTwo02財務數據分析財務數據分析6.2數據清洗
6.2數據清洗
6.2數據清洗
Pandas函數應用PartThree03財務數據分析財務數據分析財務數據分析財務數據分析Pandas函數應用概述如果想要應用自定義函數,或者把其他庫中的函數應用到Pandas對象中,有以下3種方法:l
pipe():操作整個DataFrame的函數l
apply():操作行或者列的函數l
applymap():操作單一元素的函數財務數據分析財務數據分析鏈式操作Pandas的鏈式操作是一種優雅且簡潔的方法,通過連續調用多個方法來處理數據,而不需要將中間結果存儲在臨時變量中。鏈式操作可以使代碼更具可讀性和可維護性。為了避免潛在的問題,鏈式操作通常與DataFrame的方法結合使用,這些方法返回副本而不是在原地修改數據。語法格式:df.<操作1>.<操作2>.<操作3>.….<操作N>財務數據分析財務數據分析pipe()函數Series,DataFrame,GroupBy等對象pipe()函數:x.pipe(f,*args,**kwargs),等同于f(x,*args,**kwargs)函數處理。即x作為參數傳遞給函數f處理,該函數應用于整個x數據。以DataFrame為例,語法格式:df.pipe(<函數名>,<傳給函數的參數列表>)f(g(h(df),arg1=a),arg2=b,arg3=c),用pipe()可以把函數連接起來,語法格式:(df.pipe(h).pipe(g,arg1=a).pipe(f,arg2=b,arg3=c))財務數據分析財務數據分析apply()函數如果要操作
DataFrame的行或者列,可以使用apply()函數,可選參數axis,并且默認按列操作。語法格式:df.apply(func,
#函數,應用于每列或每行的函數axis=0,
#{0or‘index’,1or‘columns’},默認為0,應用函數的軸方向*args,**kwds)財務數據分析財務數據分析applymap()或map()函數df.applymap()
可做到元素級函數應用,就是對DataFrame中所有的元素(不包含索引)應用函數處理。使用lambda時,變量是指每一個具體的值。語法格式:DataFrame.applymap(func,na_action=None,**kwargs)其中
na_action:類型:{None,'ignore'}作用:指定是否忽略NaN值None(默認):對NaN值應用函數'ignore':跳過NaN值,不對其應用函數財務數據分析財務數據分析【本章小結】介紹了Pandas以一個數據集為操作對象的一般化處理,包括DataFrame和Series的數據數值計算,數據集利用pipe()、apply()和applymap()進行函數處理,以及數據集的缺失值和重復值等數據清洗。完成本章的學習,讀者應該能夠完成數據集進行數據分析之前的處理工作。THANKS感謝關注財務數據分析財務數據分析Pandas數據集處理7PandasDatasetProcessing內容概述本章學習目標財務數據分析財務數據分析(1)掌握利用Pandas內置函數對DataFrame進行數據變形操作的方法;(3)掌握利用Pandas內置函數對多個DataFrame進行數據連接操作的方法。(2)掌握利用Pandas內置對象GroupBy對DataFrame進行分組操作的方法;目錄CONTENTS財務數據分析財務數據分析第7章Pandas數據集處理 7.1數據變形7.2數據分組
7.3數據連接
【Python財務數據分析】——A股上市公司基本行業分類處理數據變形PartOne01財務數據分析財務數據分析財務數據分析財務數據分析長寬表的變形長表和寬表是數據的兩種不同表示方式。長表(longformat)通常用于存儲逐行記錄的數據,而寬表(wideformat)則在列中存儲更多的維度信息。這兩種表示方式各有優缺點,并在不同的分析任務中各有用途。Pandas提供了多種方法來在長表和寬表之間進行轉換。長表(LongFormat):每行表示一個觀測值,每列表示一個變量。長表通常具有重復的行索引。寬表(WideFormat):每行表示一個觀測單位,每列表示一個變量的不同維度。寬表通常具有更多的列。財務數據分析財務數據分析長寬表的變形財務數據分析財務數據分析長寬表的變形財務數據分析財務數據分析pivot()函數1)整理透視Pivot()函數財務數據分析財務數據分析pivot()函數1)整理透視Pivot()函數財務數據分析財務數據分析pivot_table()函數財務數據分析財務數據分析pivot_table()函數財務數據分析財務數據分析melt()函數財務數據分析財務數據分析melt()函數財務數據分析財務數據分析wide_to_long()函數財務數據分析財務數據分析wide_to_long()函數數據分組PartThere03財務數據分析財務數據分析財務數據分析財務數據分析groupby()函數1)分組要素分組是根據一定的規則進行數據劃分,將一個數據集劃分成若干個小的區域,然后可以針對若干個小區域進行數據處理。df.groupby()
函數是按指定字段對DataFrame行分組,生成一個分組器對象,然后再把這個對象的各個字段按一定的聚合方法輸出。因此,df.groupby()
函數的一般化應用格式:df.groupby(分組依據)[數據來源].使用操作財務數據分析財務數據分析groupby()函數groupby()函數的分組依據有多種形式。(1)列名構成的列表在groupby()函數中傳入相應列名構成的列表作為分組依據。(2)條件表達式groupby()函數的分組依據是直接可以從列中按照名字獲取的。還可以通過一定的復雜邏輯條件來分組。財務數據分析財務數據分析groupby()函數財務數據分析財務數據分析分組操作groupby()方法實現分組聚合的過程可以分為以下3個階段。?分組(Split):將數據按照標準拆分成多個組。?應用(Apply):將一個指定函數應用于拆分后的每一組數據,產生一個新值。?合并(Combine):將各組產生的結果合并成一個新的對象。財務數據分析財務數據分析Groupby對象groupby對象的屬性和方法(部分)屬性和方法說明示例ngroups可以訪問組數量gb.ngroupsgroups組名映射組索引列表的字典gb.groups.keys()indices鍵是創建的組,值是df中每組的實例的軸標簽列表或索引gb.indicessize()統計每個組的元素個數gb.size()get_group()直接獲取所在組對應的行gb.get_group(('中國平安','環境')).iloc[:,:2]遍歷對象組名和分組DataFramefor
name,
entries
in
gb:
print(name)
print(entries.head(2),
'\n\n')財務數據分析財務數據分析組應用函數將原始數據并分組之后,我們可以對每個組執行以下操作之一或組合:聚合(Aggregation):計算每個組的匯總統計量變換(Transformation):按組進行操作,如計算每個組的z-score值過濾(Filtration):根據預定義的條件拒絕某些組1).聚合聚合函數通常要求返回標量值,常用的函數包括:
max,min,mean,median,count,all,any,idxmax,idxmin,mad,nunique,skew,quantile,sum,std,var,sem,size和prod等。2).變換GroupBy對象的transform()函數,與agg()聚合函數不同,其返回值為與源數據同長度的序列,如累計函數cumcount,cumsum,cumprod,cummax和cummin等,使用方式和聚合方法類似。3).過濾分組過濾可以被視為行過濾的推廣,指的是如果對一個組的全體所在行進行統計的結果返回
True則會被保留,False則該組會被過濾,最后把所有未被過濾的組其對應的所在行拼接起來作為DataFrame返回數據連接PartFour03財務數據分析財務數據分析財務數據分析財務數據分析數據連接的概念1)關系型數據的連接示意圖(鍵值唯一)財務數據分析財務數據分析數據連接的概念2)關系型數據的連接示意圖(笛卡爾積)財務數據分析財務數據分析值連接merge()函數主要參數說明:l
left/right:2個不同的DataFrame對象l
on:指定用于連接的鍵,2個DataFrame共同的鍵。不指定,以2個DataFrame的列名交集作為連接鍵l
left_on/right_on:該參數在左、右列標簽名不相同,指定連接鍵的列名l
left_index/
right_index:布爾參數,True則使用行索引作為連接鍵,默認為Falsel
how:要執行的合并類型,從
{'left',
'right',
'outer',
'inner'}中取值,默認為'inner'內連接財務數據分析財務數據分析索引連接join()函數join()函數來處理索引連接,參數設置與merge()函數類似。on參數指索引名,單層索引時省略參數表示按照當前索引連接。join()函數的語法格式:財務數據分析財務數據分析數據拼接concat()函數數據拼接concat()函數也稱方向連接函數,實現縱向和橫向連接,將數據連接后會形成一個新的DataFrame。concat()
函數可以沿著行或者列進行操作,同時可以指定非合并軸的合并方式(合集、交集等)。concat()函數語法格式:【Python財務數據分析】
——A股上市公司行業分類處理PartPractice05財務數據分析財務數據分析財務數據分析財務數據分析實踐1.數據清洗讀入<公司基本信息.xlsx>文件,將數據集[行業代碼B]列,拆分為[行業門類碼]和[行業大類碼]。2.變形操作針對1.得到的數據集,考察每個行業門類的公司數量,注冊資本的最大值,最小值和均值3.數據連接針對1.得到的數據集,增加[行業門類]和[行業大類]數據列4.分組操作新公司基本信息數據集df_com_new,分組處理。財務數據分析財務數據分析【本章小結】數據集基于業務關系可以設定為長表和寬表,這取決于標簽(行列索引)和數據值之間的轉化。Pandas可對多個數據集進行關聯操作,數據集有很多聚合函數,但是需要對數據集分組、分層聚合。因此Pandas提供了GroupBy對象,該對象有實用處理方法和屬性。完成本章的學習,讀者應該能夠基本掌握Pandas的核心內容。完成本章的學習,我們基本掌握的Pandas的核心內容。其他數據處理,如缺失值處理,重復值處理等,請自學掌握。THANKS感謝關注財務數據分析財務數據分析數據可視化8DataVisualization內容概述本章學習目標財務數據分析財務數據分析(1)理解數據分析中不同類型數據的含義和統計學意義(5)能夠利用Matplotlib、Seaborn進行Python財務數據分析。(4)掌握Matplotlib、Seaborn中基本圖形的繪制方法;(2)熟練掌握Matplotlib繪圖的基本過程;(3)熟悉Matplotlib對象的屬性和方法;
目錄CONTENTS財務數據分析財務數據分析第8章數據可視化6.1Matplotlib入門
6.2定量和定性數據
【Python財務數據分析】——財務數據的可視化基礎圖形Matplotlib入門PartOne01財務數據分析財務數據分析財務數據分析財務數據分析數據可視化數據的圖形呈現是探索、分析數據的常用方法。相對于文字表述,圖形更加直觀且形象化,更適合人類的思維模式理解。使用圖形來表示數據的方法稱為數據可視化。數據以圖形圖像形式表示,可以揭示隱藏的數據特征,直觀傳達關揵信息;輔助建立數據分析模型,展示分析結果。Matplotlib和Seaborn是Python繪圖第三方庫,同時Pandas集成了Matplotlib中的常用可視化圖形接口,可通過Series和DataFrame兩種數據結構面向對象的接口方式簡單調用。Pandas繪圖中僅集成了常用的圖表接口,更多復雜的繪圖需求往往還需依賴Matplotlib或者其他可視化庫。財務數據分析財務數據分析Matplotlib繪圖過程1)導入模塊importmatplotlib.pyplotasplt2)獲取繪圖數據3)繪圖4)裝飾圖形5)保存與顯示圖形繪圖過程,雖然簡單,但是從面向對象的視角看反而不好理解。原因是,在繪圖的過程隱式地創建畫布(figure)和繪圖區域(axes)。因此我們不推薦。使用plt的屬性和方法賦予畫布和繪圖區域,完成繪圖的過程更清晰,而且可以繪制更復雜的圖形。財務數據分析財務數據分析Matplotlib繪圖對象和類畫布Figure、子圖Axes和數軸Axis關系示意圖Figure是容納多個Axes的畫板或畫布,而Axes則是所有圖標數據、圖例配置等繪圖形元素的容器,稱為一個繪圖區域。面向對象的繪圖,就是將plt中的圖形賦值給一個Figure或Axes實例,通過調用Figure或Axes兩類實例的方法完成繪圖。財務數據分析財務數據分析Matplotlib繪圖對象和類1)創建畫布創建畫布,包括創建figure和axes對象,常用方法:(1)plt.figure(),接收一個元組作為figsize參數設置圖形大小,返回一個figure對象;(2)plt.axes(),接收一個figure或在當前畫布上添加一個子圖,返回該axes對象,并將其設置為“當前”子圖,缺省時會在繪圖前自動添加;(3)plt.subplot(),接收3個數字或1個3位數作為子圖的行數、列數和當前子圖索引。索引從1開始,返回一個axes對象用于繪圖操作。可以理解成是先隱式執行了plt.figure,然后在創建的figure對象上添加子圖,并返回當前子圖實例;(4)plt.subplots(),接收一個行數nrows和列數ncols作為參數,創建一個figure對象和相應數量的axes對象,同時返回該figure對象和axes對象嵌套列表,并默認選擇最后一個子圖作為“當前”圖。財務數據分析財務數據分析Matplotlib繪圖對象和類2)子圖——axes對象(1)創建axes對象Matplotlib定義了一個Axes(軸域)類,創建的對象被稱為axes對象(即軸域對象,或稱為子圖)。axes對象可以理解為有軸(axis)的集合,一般包含基本的2個axis,用來確定一個區域。一個畫布設置若干繪圖區域,從而實現對畫布的布局。默認情況下,函數創建一個標準的axes對象填滿整個圖表區域。當只有畫布上只有一張子圖時,可以用plt代替ax。財務數據分析財務數據分析Matplotlib繪圖對象和類(2)axes對象的屬性和方法axes的屬性和方法,本質上是由plt賦予的。因此axes的成員和plt類似,但是也要注意個別方法有細微差異。2)子圖——axes對象①plot()繪圖②grid()網格格式設置③xscale()或yscale(),spines()坐標軸④xlim()和ylim()坐標軸范圍⑤xticks()和yticks()刻度和刻度標簽⑥legend()繪制圖例財務數據分析財務數據分析Matplotlib繪圖對象和類plt.subplot()函數可以均等地劃分畫布,語法格式:3)subplot()函數和add_subplot()函數財務數據分析財務數據分析Matplotlib繪圖對象和類3)subplot()函數和add_subplot()函數nrows×nclos表示子圖數量,subplot(233)表示在當前畫布的右上角創建一個2行3列的繪圖區域,同時選擇在第3個位置繪制子圖。財務數據分析財務數據分析Matplotlib繪圖對象和類4)subplots()函數subplots()函數與subplot()函數類似。其不同之處在于subplots()既創建了一個包含子圖區域的畫布,又創建了子圖對象,而subplot()只是創建一個在當前畫布下的子圖對象。subplots的函數語法格式:fig,ax=plt.subplots(nrows,ncols)nrows與ncols表示兩個整數參數,其他指定子圖所占的行數、列數。函數的返回值是一個元組,包括一個畫布對象和所有的子圖對象。其中子圖對象的數量等于nrows×ncols,且每個axes對象均可通過索引值訪問。財務數據分析財務數據分析Matplotlib繪圖對象和類5)subplot2grid()函數plt.subplot2grid()函數能夠在畫布的特定位置創建axes對象。還可以使用不同數量的行、列來創建跨度不同的繪圖區域。即subplot2gird()函數可以以非等分的形式對畫布進行切分,并按照繪圖區域的大小來展示最終繪圖結果。plt.subplot2grid()函數語法格式:plt.subplot2grid(shape,#規定的網格區域作為畫布劃分location,#子圖繪制位置,初始位置(0,0)第1行第1列rowspan,#子圖跨越網格區域行數colspan)#圖跨越網格區域列數定量和定性數據PartTwo02財務數據分析財務數據分析財務數據分析財務數據分析定性與定量數據是指對客觀事件進行記錄并可以鑒別的符號,也就是對事物的性質、狀態以及相互關系等進行記載的物理符號或這些物理符號的組合。數據按性質可分為:(1)定性數據(qualitativedata)在統計學上的包括分類數據和順序數據,是一組表示事物性質、規定事物類別的文字表述型數據。見表示事物屬性的數據(注冊地、上市公司板塊、公司行業、債券評級等)。(2)定量數據(Quantitativedata)的,反映事物數量特征的數據,如金額、價格、重量、速度等物理量。財務數據分析財務數據分析數據分類4種測定尺度的意義與特征:分類(nominal)尺度:無序類別數據。分類尺度將數字作為事物總體中不同類別/組別的代碼,是最低層次的尺度。順序(ordinal)尺度:順序數據。順序尺度不但可以用數表示量的不同類別,而且也反映量的大小順序關系,從而可以列出各類的次序。定距(interval)尺度:間隔數據。定距尺度是對事物類別或次序之間間距的計量,它通常使用度量衡單位作為計量尺度。定距尺度是比順序尺度高一層次的計量尺度。比例(ratio)尺度:連續數據。比例尺度是在定距尺度的基礎上,確定可以作為比較的基數,將兩種相關的數加以對比,而形成新的相對數。【財務應用與實踐】
財經數據的可視化基礎圖形PartPractice05財務數據分析財務數據分析財務數據分析財務數據分析類別數據可視化——柱狀圖柱狀圖是一種用矩形柱來表示數據分類的圖表,柱狀圖可以垂直繪制,也可以水平繪制,它的高度與其所表示的數值成正比關系。柱狀圖顯示了不同類別之間的比較關系,圖表的一個軸指定被比較的類別,另一個軸則表示具體的類別值。Matplotlib提供了bar()和barh()函數來繪制柱狀圖。財務數據分析財務數據分析類別數據可視化——餅圖餅圖只適用排列在數據幀的一列或一行中的數據。餅圖顯示一個數據系列中各項的大小與各項總和的比例。即顯示為數據占整個餅圖的百分比。Matplotlib提供了pie()函數來繪制餅圖。財務數據分析財務數據分析順序數據可視化——箱線圖四分位數是把所有數值由小到大排列并分成四等份,處于三個分割點位置的數值分別是:第一四分位數(Q1),等于該樣本中所有數值由小到大排列后第25%的數字第二四分位數(Q2),又稱“中位數”,等于該樣本中所有數值由小到大排列后第50%的數字第三四分位數(Q3),等于該樣本中所有數值由小到大排列后第75%的數字第三、四分位數與第一四分位數的差距又稱四分位距(IQR)。計算公式:IQR
=
Q3
?
Q1財務數據分析財務數據分析順序數據可視化——箱線圖箱線圖作為描述統計的工具之一,其可以直觀明了地識別數據中的異常值,非對稱分布數據的特征,也可以用來對若干批次數據比較分析。財務數據分析財務數據分析間隔數據可視化——直方圖直方圖是一種統計圖表,用于展示數據的分布情況。它的主要特點包括:直觀展示數據的頻率分布。通過矩形的高度來表示數據落在各個區間的數量或頻率。財務數據分析財務數據分析比例數據可視化——散點圖散點圖來表述兩個連續變量X和Y之間的關系,圖中的每個點表示目標數據集中的每個樣本,在直角坐標系平面上數據點的分布和因變量隨自變量而變化的大致趨勢。由此趨勢可以選擇合適的函數進行擬合,以用來表示某些模型,進而找到變量之間的函數關系。財務數據分析財務數據分析比例數據可視化——蜂巢圖當有成千上萬的數據樣本點時,散點圖會變得過于密集而無法解釋。當數據量大我們采用蜂巢圖(Hexbin)。其將圖表劃分為了一個六邊形區域,基于聚合方法(例如點的數量),為區域的不同部分添加不同深度的顏色。hexbin()函數用于制作點x,y的2D六角形裝箱圖,顏色深度表示樣本點數量財務數據分析財務數據分析【本章小結】我們本章學習了Matplotlib和Seaborn簡單的應用。可視化是數據分析過程中不可或缺步驟和方法。關于可視化的知識內容很多,學習的初期掌握每個數據可視化每個細節不是很容易,也沒有必要。Matplotlib和Seaborn案例豐富,本章并沒有介紹它們完整的知識體系,而是試圖通過具體的實例,展示其功能。讀者需要掌握基礎操作之后,首先做到模仿繪圖,之后逐步掌握繪圖的細節和技巧,在實踐中漸漸深入提升可視化技能。THANKS感謝關注財務數據分析財務數據分析文本數據處理9-1TextDataProcessing內容概述1本章學習目標財務數據分析財務數據分析(1)掌握Series數據類型特征和轉化;(5)利用str對象處理財務文本數據。(4)掌握文本數據的拆分、合并、匹配、提取和替換;(2)熟悉str對象的屬性和方法;(3)熟悉正則表達式基礎語法;目錄CONTENTS財務數據分析財務數據分析9.1文本數據處理
1Pandas數據類型綜述
2str對象
3正則表達式基礎
4文本數據處理的5類操作
【財務應用與實踐】上市公司基本信息文本數據處理
Pandas數據類型綜述PartOne01財務數據分析財務數據分析財務數據分析財務數據分析Pandas數據類型Pandas類型(dtype)Python類型(type)說明objectstr字符串,存儲文本數據等int64int整數float64float浮點數boolboolTrue/False值datetime64NA日期時間的值timedelta[ns]NA日期時間的差categoryNA統計中分類變量財務數據分析財務數據分析數據類型轉換astype()函數是pandas中用于轉換數據類型的方法。它可以將DataFrame或Series的數據類型轉換為指定的類型。語法格式:DataFrame.astype(dtype,copy=True,errors='raise')Series.astype(dtype,copy=True,errors='raise')errors:類型:{'raise','ignore'},默認為'raise'作用:指定在轉換期間如何處理錯誤。'raise':如果發生錯誤,則引發異常。'ignore':忽略錯誤,保留原始數據。財務數據分析財務數據分析分類數據category類型在處理具有固定類別或需要特定排序的數據時非常有用,特別是在數據分析和處理中,可以提高數據的可讀性、內存效率和操作便利性。屬性和方法說明舉例catcat對象df['員工'].catcat.categoriesIndex類型類別的本身df['員工'].cat.categoriescat.ordered是否有序df['員工'].cat.categoriescat.codes序列的類別會被賦予唯一的整數編號df['員工'].cat.codesstr對象PartTwo02財務數據分析財務數據分析財務數據分析財務數據分析Python字符串簡單重申一下有關字符串的相關概念:字符串的長度:字符串中字符的數目n稱為字符串的長度;空字符串:零個字符構成的串,長度為0,可以表示為"";子串:字符串中任意個連續的字符組成的子序列;字符串的前綴:起始于位置為0、長度為k的子串稱為「前綴」;字符串的后綴:終止于字符串末尾位置(n-1),長度為k的子串稱為「后綴」;字符串之間的比較:通過組成字符串的字符之間的字符編碼來決定的。而字符編碼指的是字符在對應字符集中的序號。財務數據分析財務數據分析str對象屬性和方法Pandas通過定義在Index或Series上的str屬性,來處理類型為object或string的文本數據1)字母型函數字符串函數中有關字母型的概念是針對英文字符串而言的。upper(),lower(),title(),capitalize()和swapcase()
這5個函數主要用于字母的大小寫轉化。s=pd.Series(['industry(工業)','CN','ascale','FinancialApp'])財務數據分析財務數據分析str對象屬性和方法2)pd.to_numeric()函數pd.to_numeric()函數能夠對字符格式的數值進行快速轉換和篩選。s=pd.Series(['10','2.1','2e5','<>'])財務數據分析財務數據分析str對象屬性和方法3)統計型函數count
()和
len()函數的作用分別是返回出現正則模式的次數和字符串的長度。s=pd.Series(['**','B***','Ab$'])財務數據分析財務數據分析str對象屬性和方法4)格式型函數格式型函數第一類函數用于數據清洗,空格等字符消除,分別代表去除兩側空格strip()、右側空格rstrip()和左側空格lstrip()。my_index=pd.Index(['列A','列B','列C'])my_code=pd.Series([1,323,600618]).astype('string')正則表達式基礎PartThere03財務數據分析財務數據分析財務數據分析財務數據分析正則表達式概述正則表達式是一種文本模式,包括普通字符(例如,a-z之間的字母)和特殊字符(元字符),描述匹配字符串的特定模式,用來查找、替換、驗證和提取文本數據等操作。簡單地說,正則表達式是一個特殊的字符序列,其用于檢查一個字符串是否與某種模式匹配。通過使用正則表達式可以做到:數據驗證。通過測試字符串,得到需要的字符串模式。如電話號是有模式的數字組成的固定位數的字符串;匹配替換。基于模式匹配從提取子字符串,進而進行后續操作;替換文本。可以使用正則表達式識別文檔中的特定文本,刪除或者替換文本。財務數據分析財務數據分析正則表達式語法1)正則表達式的構造正則表達式是由普通字符和特殊字符(稱為“元字符”)組成的文字模式(pattern)財務數據分析財務數據分析正則表達式語法1)正則表達式的構造正則表達式是由普通字符和特殊字符(稱為“元字符”)組成的文字模式(pattern)(1)普通字符普通字符包括沒有被指定為元字符的所有可打印和不可打印字符。財務數據分析財務數據分析正則表達式語法1)正則表達式的構造正則表達式是由普通字符和特殊字符(稱為“元字符”)組成的文字模式(pattern)(2)元字符在正則表達式中,通常使用一些特殊的字符來描述模式,這些特殊的字符稱為元字符。常用的元字符包括:.[]*+?{}()|\^$財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(1)【.】元字符元字符點【.】匹配除換行符【\n】之外的任何單字符。(2)匹配元字符像點【.】、【\】等是元字符。要匹配它們,需要請使用【\.】和【\\】財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(3)限定符限定符用來指定正則表達式的一個給定組件必須出現多少次才能滿足匹配。限定符有
*
、
+
、
?、
{n}、
{n,}
、或
{n,m}
共6種。s='Apple蘋果!\nanApple\np'財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(4)字符集和否定字符集字符集也稱為字符類,是匹配方括號中包含的任意字符。分兩種情況:①[],匹配方括號中包含的任意字符。②[^],否定字符類,匹配方括號中不包含的任意字符。財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(4)字符集和否定字符集字符集也稱為字符類,是匹配方括號中包含的任意字符。分兩種情況:①[],匹配方括號中包含的任意字符。②[^],否定字符類,匹配方括號中不包含的任意字符。財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(5)字符組字符組是一組寫在圓括號內的子模式
(…)。如(xyz),按照確切的順序匹配字符xyz。還可以使用元字符【|】,表示“或”關系財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(6)定位符在正則表達式中,使用定位符檢查匹配符號是否是起始符號或結尾符號。插入符號【^】符號用于檢查匹配字符是否是輸入字符串的第一個字符;$】符號用于檢查匹配字符是否是輸入字符串的最后一個字符財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(7)斷言在使用正則表達式時,有時我們需要捕獲的內容前后必須是特定內容,但又不捕獲這些特定內容的時候,需要帶有斷言正則表達式。斷言是非捕獲組內容。財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(7)斷言①正向先行斷言。正向先行斷言格式:
x(?=y)②負向先行斷言。負向先行斷言格式:
x(?!y)③正向后行斷言。正向后行斷言格式:
(?<=y)x④負向后行斷言。負向后行斷言格式:
(?<!y)x財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(8)修飾符修飾符也稱為標記,正則表達式的修飾符用于指定額外的匹配策略。修飾符不寫在正則表達式里,位于表達式之外,語法格式:/pattern/flags財務數據分析財務數據分析正則表達式語法2)正則表達式基礎語法(9)使用反向引用在正則表達式中,\n
(n為整數)可以用來引用前面捕獲組中匹配的內容。例如匹配重復的單詞:‘\b(\w+)\b\s+\文本數據處理的5類操作PartFour04財務數據分析財務數據分析財務數據分析財務數據分析拆分split()函數按照能夠匹配的子串將Series/Index分割后返回列表或Series/DataFrame,語法格式:財務數據分析財務數據分析合并合并操作有2個函數,分別是
str.join()和str.cat()
。1)str.join()函數
str.join()表示用某個連接符把
Series
中的字符串列表連接起來,如果列表中出現了非字符串元素則返回缺失值。s.str.join(sep)只有1個參數sep,為合并所需的分隔符字符串2)str.cat()函數str.cat()按照給定分隔符合并Series/Index,語法格式:財務數據分析財務數據分析匹配1)str.contains()函數str.contains()返回了每個字符串是否包含正則模式的布爾序列,語法格式:2)str.startswith()和str.endswith()函數str.startswith()和str.endswith()返回了每個字符串以給定模式為開始和結束的布爾序列,他們都不支持正則表達式。財務數據分析財務數據分析匹配3)str.match()函數如果需要用正則表達式來檢測開始或結束字符串的模式,可以使用
str.match()
,其返回了每個字符串起始處是否符合給定正則模式的布爾序列,語法格式:財務數據分析財務數據分析提取str.extract()函數提取操作,是一種返回具體元素操作,首先是匹配操作,再根據匹配的結果提取捕獲組內容并返回語法格式:str.extractall()不同于str.extract()只匹配一次,其會把所有符合條件的模式全部匹配出來。提取的多個結果,以多級索引的方式存儲。str.findall()的功能類似于str.extractall(),區別在于前者把結果存入列表中,而后者處理為多級索引,每個行只對應一組匹配,而不是把所有匹配組合構成列表。財務數據分析財務數據分析替換Series/Dataframe的str.replace()和replace()并不是一個函數,在使用字符串替換時應當使用前者。
1)replace()函數replace()函數是Series/Dataframe某一個或匹配的值的整個值的替換,而str.replace不是改變值的部分。Series/Dataframe的replace()函數語法格式:財務數據分析財務數據分析提取2)str.replace()函數Series/Dataframe的str.replace()函數某一個或匹配的值的部分值的替換,語法格式:財務數據分析財務數據分析flags參數flags參數是用來指定正則表達式操作的額外選項。下面列出了常用的flags及其用法。re.I/re.IGNORECASE:忽略大小寫re.M/re.MULTILINE:多行匹配re.S/re.DOTALL:讓.可以匹配包括\n在內的任意字符re.U/re.UNICODE:使用Unicode字符集而不是ASCII字符集【Python財務數據分析】——上市公司基本信息文本數據處理PartPractice05財務數據分析財務數據分析財務數據分析財務數據分析【小結】本章是以Pandasstr對象為主要內容,講述Pandas的文本處理的基礎用法。熟練掌握這些應用會提升文檔處理和辦公自動化能力。文本數據的處理,尤其是基于正則表達式操作較為復雜,本章學習的內容是較為基礎的。較深的內容需要借助其他第三方模塊,如中文分詞,詞性標注,自然語言處理等,需要以后不斷學習拓展。THANKS感謝關注財務數據分析財務數據分析時間序列數據處理9-2TimeSeriesDataProcessing內容概述本章學習目標財務數據分析財務數據分析(1)了解時間序列分析的應用場景;(5)熟悉時間偏置DateOffset對象和窗口函數;(4)掌握dt對象的屬性和方法;(2)掌握Datetimes數據類型的屬性和方法;(3)掌握Timedeltas數據類型的屬性和方法;(6)利用Pandas進行簡單的時間序列分析。目錄CONTENTS財務數據分析財務數據分析9.2時間序列數據處理
1時間序列概述2時間點 3時間差 4時間偏置5窗口函數【Python財務數據分析】——財務數據的時間序列數據分析時間序列概述PartOne01財務數據分析財務數據分析財務數據分析財務數據分析時間序列概述時間序列是按時間順序索引的一系列數據點。最常見的時間序列是在連續的等間隔時間點上獲得的序列有關時間序列的應用場景,分為以下4種情況:(1)時間點。即特定的時刻,記錄時間維度的具體一個位置。(2)時間差。兩個時間點做差就得到了時間差。時間差可以是幾年,幾個月,幾天,幾分,幾秒,甚至小到納秒。因為是時間差值,因此既可以是正數,也可以是負數。(3)時間跨度。即以時間為計量的迭代單位,時間記錄迭代步長,以時間為計量的規律變化的一種時間差。(4)時間偏置。日期偏置是一種和日歷相關的特殊時間差,是與時間計量的不同單位進制造成的特殊時間差。時間點PartTwo02財務數據分析財務數據分析財務數據分析財務數據分析時間點時間點(Datetimes)問題,Pandas提供Timestamp、DatetimeIndex、datetime64[ns]3種數據類型。Timestamp對象是時間點元素類型,表示確切的一個時間點;由Timestamp對象組成的序列是DatetimeIndex對象;DatetimeIndex對象可以作為Pandans的一個Series或者DataFrame的一列,數據類型為datetime64[ns]。財務數據分析財務數據分析Timestamp的構造與屬性Pandas提供Timestamp(時間戳)類構造時間戳對象。單個時間戳的生成利用pd.Timestamp()實現Timestamp由date(日期)和time(時間)組成;其中日期又由year、month和day組成;時間由hour、minute和second組成。財務數據分析財務數據分析Datetime序列一組時間戳可以組成時間序列DatetimeIndex。通過to_datetime()和date_range()函數生成時間序列,即把時間戳格式的對象轉換成為datetime64[ns]類型的時間序列range()和np.arange()函數,pd.date_range()是一種生成連續間隔時間的一種方法語法格式:財務數據分析財務數據分析時序類型dt對象Pandas在時序類型的序列上定義了dt對象來完成時間序列的相關操作。這些操作可以大致分為3類:dt屬性,時間戳判定,取整操作。1)dt屬性dt對象時間分量值屬性包括:date,time,year,month,day,hour,minute,second,microsecond,nanosecond,dayofweek,dayofyear,weekofyear,daysinmonth,quarter等2)時間戳判定dt對象時間戳判定包括主要用于測試是否為月/季/年的第一天或者最后一天等,如is_leap_year,is_month_end,is_month_start,is_quarter_end,is_quarter_start,is_year_end,is_year_start等3)dt取整操作dt取整操作包含round(),ceil(),floor()函數,他們的公共參數為freq,常用的值包括:H(小時),min(分鐘),S(秒),即完成時間點的不同方式取整。財務數據分析財務數據分析dt索引和切片財務數據分析財務數據分析dt索引和切片時間差PartThere03財務數據分析財務數據分析財務數據分析財務數據分析時間差兩個時間戳(Timestamp)做差就得到了時間差(Timedeltas),Pandas中利用Timedelta對象來表示。類似于DatatimeIndex,一系列的時間差就組成TimedeltaIndex,而TimedeltaIndex置于DataFrame或Series中,其類型為timedelta64[ns]。財務數據分析財務數據分析創建Timedelta對象時間差可以理解為兩個時間戳的差,這里也可以通過pd.Timedelta()來構造pd.Timestamp('2020010208:00:00')-pd.Timestamp('2020010107:35:00')pd.Timedelta(days=1,minutes=25)#需要注意是minutes,不是minute。或pd.Timedelta('1days25minutes')#字符串生成財務數據分析財務數據分析Timedelta序列對于時間差序列的生成,需要pd.to_timedelta()方法,其類型為timedelta64[ns],示例代碼如下。td1=pd.date_range('2023-1-1','2023-3-1',periods=10)td2=td1+pd.Timedelta(days=1,minutes=45)*np.random.randint(10,size=10)ts=pd.to_timedelta(pd.Series(td2-td1))時間差序列也可以用timedelta_range()方法,參數與date_range()類似,示例代碼如下。pd.timedelta_range('1m','1000m',freq='1h')pd.timedelta_range('0h','1000h',periods=9)財務數據分析財務數據分析時間差dt對象對于Timedelta序列,同樣也定義了dt對象,接上例代碼。td_dt=(pd.Series(td2-td1)).dtTimedelta的dt對象定義了的屬性包括days,seconds,mircroseconds,nanoseconds等,與DatatimeIndex的dt對象類似。財務數據分析財務數據分析Timedelta的運算時間點是定距類型數據,但是時間差卻是比例類型數據,可以進行加、減、乘、除運算都有意義。時間偏置PartFour04財務數據分析財務數據分析財務數據分析財務數據分析Offset對象Offset對象通過pd.offsets定義。當使用加法(+)運算時獲取離其最近的下一個日期,當使用減法(-)運算時獲取離其最近的上一個日期。[in]pd.Timestamp('20231006')+pd.offsets.WeekOfMonth(week=0,weekday=0)[out]Timestamp('2023-11-0600:00:00')[in]
pd.Timestamp('20231001')-pd.offsets.WeekOfMonth(week=0,weekday=0)[out]Timestamp('2023-09-0400:00:00')財務數據分析財務數據分析偏置字符串pd.date_range()函數可以生成連續的日期時間序列語法格式:pd.date_range(start=None,end=None,periods=None,freq=None,tz=None,normalize=False,name=None,inclusive='both',*,unit=None,**kwargs)式中freq取值可用Offset對象,稱為頻率字符串,是
DateOffset
對象及其子類。窗口函數PartFive05財務數據分析財務數據分析財務數據分析財務數據分析窗口函數窗口函數可以為每行數據進行一次計算,因為窗口函數指定了數據窗口大小,可以在這個滑動窗口里進行計算并返回一個值。聚合函數只返回一行或對分組下的所有數據進行統計。財務數據分析財務數據分析滑動窗口函數窗口函數就是一個可以在滑動窗口實現各種統計操作的函數。一個滑動窗口是一個移動變化的小區間,所以窗口函數可以在不斷變化的小區間里實現各種復雜的統計分析。Pandasrolling()函數的語法格式:財務數據分析財務數據分析時序的滑動窗口所謂時序的滑窗函數,即把滑動窗口用freq關鍵詞代替。將偏移量傳遞給rolling()函數,并使其根據傳遞的時間窗口生成可變大小的窗口。函數作用于每個時間點,以及偏移量的時間增量內出現的所有先前值。財務數據分析財務數據分析時序的擴張窗口擴張窗口又稱累計窗口,可以理解為一個動態長度的窗口,其窗口的大小就是從序列開始處到具體操作的對應位置,其使用的聚合函數會作用于這些逐步擴張的窗口上。【Python財務數據分析】——財務數據的時間序列數據分析PartPractice05財務數據分析財務數據分析財務數據分析財務數據分析【小結】本節主要介紹了時間序列的特殊數據處理。時間序列是財經數據分析的重要內容,因此Pandas對其有較豐富的對象屬性和方法。我們重點介紹Datatime和Timedeltas對象,他們組成的序列DatetimeIndex和TimedeltaIndex,以及他們在Series和DataFrame的數據類型datetime64[ns]和timedelta64[ns]。dt對象與str、cat等對象非常類似,但函數參數較為復雜。本章內容較為綜合,需要實踐練習才能漸漸掌握,逐步熟悉。THANKS感謝關注財務數據分析財務數據分析基于機器學習的財務應用9-3DataAnalysisandMachineLearning內容概述本節學習目標財務數據分析財務數據分析(1)理解人工智能的概念和研究范疇;(4)利用簡單的機器學習的算法進行財務數據分析。(2)了解機器學習的概念和方法;(3)掌握簡單的機器學習的算法,及Python編程;目錄CONTENTS財務數據分析財務數據分析9.3基于機器學習的財務應用1人工智能2機器學習3sklearn 【Python財務數據分析】——基于上市公司年報財務指標的機器學習財務應用人工智能PartOne01財務數據分析財務數據分析財務數據分析財務數據分析人工智能概述
20世紀50年代,圖靈首次提出了“機器思維”的概念。他提出了一項測試,以確定計算機能否進行“思考”:如果一臺計算機的行為、反應和互動像一個有意識的個體,那么它應該被視為有意識的,即提出了“機器能思維”的觀點。
人工智能(ArtificialIntelligence,AI)是由申農(ClaudeShannon)等在1956年一次會議上被提出來的。一般認為人工智能是任何類似于人的智能或高于人的智能的機器或算法統稱。財務數據分析財務數據分析人工智能學派1)符號主義符號主義(symbolicism)的觀點:人工智能起源于數理邏輯,人類認知的基元是符號,認知過程是符號表示上的一種運算。基于知識的問題求解財務數據分析財務數據分析人工智能學派2)連接主義連接主義(connectionism)的觀點:人工智能起源于仿生學,特別是人腦模型,人類認知的基元是神經元,認知過程是神經元的聯結活動過程。playground可視化神經網絡財務數據分析財務數據分析人工智能學派3)行為主義學派行為主義(actionism)的觀點:人工智能起源于控制論,智能取決于感知和行為,是對外界復雜環境的適應,而不是推理。以自動駕駛汽車為例,它在行駛過程中,不斷接收來自攝像頭、激光雷達和其他傳感器的數據。當遇到行人突然出現在道路上時,汽車會立即根據這些實時的感知信息采取剎車動作。這個決策不是基于預先編寫的固定程序,而是基于對環境的實時感知和過去在類似情況下的學習經驗(通過大量的模擬訓練或實際道路測試積累),以實現安全、高效的駕駛行為。機器學習PartTwo02財務數據分析財務數據分析財務數據分析財務數據分析機器學習概念符號主義需要基于人類認知的規則,連接主義基于數據處理的物理模型假設空間,而行為主義需要行為結果與行為環境的交互。這些人工智能領域,本質都是數據到知識的映射。從原始數據中獲取有用知識的能力被稱為機器學習(machinelearning)。機器學習與人類思維的對比財務數據分析財務數據分析數據、信息和知識1)數據數據泛指對客觀事物的數量、屬性、位置及其相互關系的抽象表示,以適合用人工或自然的方式進行保存、傳遞和處理。數據是知識階層中最底層也是最基礎的一個概念,是形成信息、知識和智能的源泉,是機器學習“原料”。換句話說,機器模型需要數據“喂養”,才能“成熟”。財務數據分析財務數據分析數據、信息和知識3)知識數據是信息的載體,本身無確切含義。知識可以理解為信息與信息之間的關聯。通過對信息使用歸納、演繹的方法得到知識。在表中9-1,我們發現:樣本的特征“所有者權益”與特征“資產”和“負債”存在這種關聯關系:如果“資產”和“負債”兩個特征的值,就可以得到特征“所有者權益”值。這種關聯關系就是知識。財務數據分析財務數據分析數據、信息和知識財務數據分析財務數據分析機器學習過程財務數據分析財務數據分析機器學習過程1)機器學習前提機器之所以能夠學習,是有數學原理支持的。簡單地說,就是數學證明通過大量描述事物的數據,可以發現其中的規律。我們把要發現的規律視為一種假設:“未知的目標函數假設”,即機器學習的假設前提。通過事物的描述(X),存在一個理想化的映射(f):XY。X是已知樣本的樣本空間,Y是樣本的一個新特征空間。這個假設的存在是我們機器學習的前提。財務數據分析財務數據分析機器學習過程2)獲取數據有了(1)的前提,我們需要首先要得到盡可能多且全面的事物描述數據(X),以及通過經驗或過去的事實了解已知事物的特征(Y)的值,即數據集D:(X,Y)。X為目標函數(g)的左側特征值,Y為目標函數映射的特征向量。Y的值獲取具有多種途徑,因此演化多種機器學習的方法,如有監督機器學習,無監督機器學習,強化學習,自學習等財務數據分析財務數據分析機器學習過程3)數據預處理數據在學習之前,要滿足學習算法的要求,如數據變換、數據標準化等。這里我們只討論數據拆分這一步驟。通常會把數據分成2部分(有時也分為3部分,訓練集、測試集和驗證集),即訓練集(trainingset)和測試集(testingset)。訓練集是用來訓練模型,測試集是在模型的訓練之后評估模型的好壞。數據拆分有很多方法,如K折交叉檢驗(K-foldcross-validation)——大致思想是把數據集分成K份,每次取一份作為測試集,取余下的K-1份作為訓練集。財務數據分析財務數據分析機器學習過程4)學習訓練除了訓練數據集,學習訓練需要另外2個要素:假設空間和算法。(1)假設空間:我們根據已有的認知,使用某種思維框架把理想的函數f所在的空間表示出來,即假設空間H:X->Y。H可以被理解為X->Y的“形態”空間,空間中的具體模型形式可能有無限多個。(2)算法:算法A可以理解為從假設空間H中,找到一個最優或次優的模型的數學方法。算法求解的條件是:得到的模型g,使得g(X),無限接近f(X)=Y。即從假設空間中找到一個模型g,使得映射得到的與已知事實的Y的差異盡可能小。基于此,機器學習一般可以轉換為最小化問題求解。財務數據分析財務數據分析機器學習過程5)模型評估模型g在訓練集上表現很好,即預測值與真實值差異趨近最小。但是未必在測試集上有同樣的表現。算法A學習X得到的g,可能有缺陷[這種缺陷來自多個方面:①訓練集X不能完全代表事物本身,或數量不足;②人類認知有限,事物的規律f不在假設空間H之中;③算法A本身有問題,得到的g不是一個合適的解。這里涉及過擬合、欠擬合和超級參數等概念。如果模型g在測試集上表現不佳,則要回到前面的重新學習訓練。通過了測試,則模型就能用于預測分析了。財務數據分析財
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國解剖刀行業市場前景預測及投資價值評估分析報告
- 青少年網絡安全教育片心得體會
- 信息技術領域領導干部能力素質提升培訓心得體會
- 電子產品供應商導入流程分析
- 牛奶行業發展前景及未來趨勢分析報告
- 2025年培訓調研總結報告
- 建材行業市場調查報告
- 初三畢業班班主任教學改革工作計劃
- 西南交通大學電力系統實驗報告1
- 自媒體商業項目計劃書
- 《慧典電子病歷系統》操作手冊
- 配電室維保方案資料
- 下消化道出血診治PPT
- 醫院病房裝修改造工程施工方案
- 非相干散射雷達調研報告
- 設計概論 設計批評
- 醫院崗位設置與人員編制標準
- 晚設計我們的校園——校園環境藝術設計
- 電機電磁線圈設計程序..
- 赫章縣水土保持規劃
- 乳膠漆知識培訓
評論
0/150
提交評論