《大數(shù)據(jù)財(cái)務(wù)分析-基于Python》課后習(xí)題答案_第1頁(yè)
《大數(shù)據(jù)財(cái)務(wù)分析-基于Python》課后習(xí)題答案_第2頁(yè)
《大數(shù)據(jù)財(cái)務(wù)分析-基于Python》課后習(xí)題答案_第3頁(yè)
《大數(shù)據(jù)財(cái)務(wù)分析-基于Python》課后習(xí)題答案_第4頁(yè)
《大數(shù)據(jù)財(cái)務(wù)分析-基于Python》課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章Python基礎(chǔ)快速入門Part1:?jiǎn)雾?xiàng)選擇題1.下面哪個(gè)數(shù)據(jù)類型表示整數(shù)(B)A:char B:intC:float D:list該題選B。選項(xiàng)A不是python的數(shù)據(jù)類型,C為小數(shù)格式,D為列表。2.下面(C)不是推薦的變量名。A:a B:bananaC:list D:my-score該題選C。變量命名需要便于理解和閱讀,選項(xiàng)a缺乏含義,不易于閱讀;選項(xiàng)c與列表名相同,容易混淆;選項(xiàng)d為非法命名。3.下列代碼的執(zhí)行結(jié)果是(B)A:1 B:3C:8 D:4該題選B,列表ls包括三個(gè)列表格式的元素。Part2:多項(xiàng)選擇題1.下面說(shuō)法正確的是(ABC)A、int函數(shù)可以將字符串轉(zhuǎn)為整數(shù)但對(duì)字符串也有要求,如果字符串內(nèi)有小數(shù)就不能直接轉(zhuǎn)為整數(shù)B、str函數(shù)可以將數(shù)字轉(zhuǎn)為字符串C、len函數(shù)可以統(tǒng)計(jì)字符串的長(zhǎng)度D、strip函數(shù)可以進(jìn)行字符替換

用于移除字符串頭尾指定的字符序列該題選ABC,strip函數(shù)適用于頭尾字符刪除。2.下面說(shuō)法錯(cuò)誤的是(BCD)A、Python代碼是逐行編寫(xiě)的B、Python可以通過(guò)/進(jìn)行注釋?xiě)?yīng)該是通過(guò)#注釋C、Python中縮進(jìn)不重要

縮進(jìn)會(huì)影響代碼的運(yùn)行邏輯D、for語(yǔ)句是判斷語(yǔ)句是循環(huán)語(yǔ)句而不是判斷語(yǔ)句B:使用/不能用于注釋,該字符通過(guò)‘Ctr+/’,用于單行和多行注釋方式,前提是選中需要注釋的代碼,注釋通常則使用#或'''''';C:縮進(jìn)決定代碼是否運(yùn)行錯(cuò)誤,很重要;D:判斷語(yǔ)句一般為ifelse。Part3:判斷題1.列表的索引序號(hào)從1開(kāi)始。該題答案為錯(cuò)誤。索引序號(hào)從0開(kāi)始。Part4:代碼練習(xí)題1.使用for循環(huán)語(yǔ)句計(jì)算從1加到10000的值。num=0foriinrange(10001):

num+=iprint(num)2.通過(guò)if判斷語(yǔ)句、for循環(huán)語(yǔ)句和range()函數(shù)批量打印出1到100內(nèi)的奇數(shù)。foriinrange(1,101):

ifi%2==1:

print(i)3.請(qǐng)?zhí)崛=’2020-07-2510:53’中的年月日信息。

#方法一:a='2020-07-2510:53'a=a.split('')[0]print(a)#方法二:a='2020-07-2510:53'year=a[:4]month=a[5:7]day=a[8:10]print('年份為:'+year,'月份為:'+month,'日期為:'+day)4.請(qǐng)用2種方法清除a='

華能信托是家好公司

'兩旁的空格。

a='華能信托是家好公司'#方法1result1=a.strip()print(result1)#方法2result2=a.replace('','')print(result2)5.請(qǐng)?zhí)崛×斜韆=['丁一','王二','張三','李四','趙五']中奇數(shù)序號(hào)的姓名。a=['丁一','王二','張三','李四','趙五']foriinrange(len(a)):

ifi%2==0:

print(a[i])6.公司A在2016—2020年的凈利潤(rùn)分別為2.5,2.8,3.1,2.9,3.3億元,凈資產(chǎn)分別為10,11,13,13.5,14億元,通過(guò)print()函數(shù)打印輸出2020年公司A的凈資產(chǎn)收益率(ROE)。#方法一:ROE_2020=3.3/14print(ROE_2020)#方法二:ROE=3.3/14print('{}%'.format(round(ROE*100,2)))#方法三:ROE=3.3/14print(str(round(ROE*100,2))+'%')7.假設(shè)公司A是貴州茅臺(tái),通過(guò)字符串拼接得到它的完整股票代碼:600519.SH。(上交所上市的股票代碼后綴名為“.SH”,深交所為“.SZ”。)ID='600519'Exchange='.SH'Name=ID+Exchangeprint(Name)8.分別創(chuàng)建兩個(gè)名為“net_profit”和“net_equity”的列表,列表元素分別為第6題中的5年凈利潤(rùn)和5年凈資產(chǎn)。

net_profit=[2.5,2.8,3.1,2.9,3.3]net_equity=[10,11,13,13.5,14]9.根據(jù)第8題中的兩個(gè)列表計(jì)算得到2016—2020年每年的ROE,把結(jié)果放入新列表“ROE”中,并依次打印輸出該列表中的所有元素。

#方法一:ROE=[]foriinrange(len(net_profit)):

roe=net_profit[i]/net_equity[i]

ROE.append(roe)

print(roe)

#方法二:ROE=[net_profit[i]/net_equity[i]foriinrange(len(net_profit))]print(ROE)10.選取第9題列表“ROE”中2018年的指標(biāo);選取5年中第2年到第4年的指標(biāo)。print(ROE[2])print(ROE[1:4])11.公司A在2020年的收入為100億元,資產(chǎn)總額為30億元,首先計(jì)算總資產(chǎn)周轉(zhuǎn)率,然后用if判斷語(yǔ)句,如果公司A的總資產(chǎn)周轉(zhuǎn)率大于2,則打印輸出“總資產(chǎn)周轉(zhuǎn)率為:xx,指標(biāo)較好”,否則,打印輸出“總資產(chǎn)周轉(zhuǎn)率為:xx,指標(biāo)較差”。#方法一:TAT=round(100/30,2)ifTAT>2:

print('總資產(chǎn)周轉(zhuǎn)率為:'+str(TAT)+',指標(biāo)較好')else:

print('總資產(chǎn)周轉(zhuǎn)率為:'+str(TAT)+',指標(biāo)較差')#方法二:TAT=round(100/30,2)ifTAT>2:

print('總資產(chǎn)周轉(zhuǎn)率為:{},指標(biāo)較好'.format(TAT))else:

print('總資產(chǎn)周轉(zhuǎn)率為:{},指標(biāo)較差'.format(TAT))

12.給定一個(gè)包含6位股票代碼的列表stock=[‘600519',’000725',’600031'],通過(guò)for循環(huán)語(yǔ)句和if判斷語(yǔ)句判斷列表中每個(gè)代碼是來(lái)自上交所還是深交所,并加上相應(yīng)的后綴名“.SH”或“.SZ”,得到的新列表命名為“stockcode”。(提示:上交所的股票代碼通常是6開(kāi)頭,深交所的股票代碼通常是0開(kāi)頭。)

stock=['600519','000725','600031']stockcode=[]foriinstock:

ifi[0]=='6':

stockcode.append(i+'.SH')

else:

stockcode.append(i+'.SZ')print(stockcode)13.假設(shè)從財(cái)經(jīng)網(wǎng)站獲取了部分公司名稱列表['貴州茅臺(tái)','五糧液','瀘州老窖'],以及這些公司對(duì)應(yīng)的毛利率[‘0.75’,‘0.66’,’0.58’],使用str()函數(shù)分別把公司名稱和對(duì)應(yīng)的毛利率拼接成字符串(格式為“xx公司的毛利率為xx”)并依次輸出結(jié)果。

name=['貴州茅臺(tái)','五糧液','瀘州老窖']GP=[0.75,0.66,0.58]foriinrange(len(name)):

result=name[i]+'公司的毛利率為:'+str(GP[i])

print(result)14.假設(shè)從財(cái)經(jīng)網(wǎng)站獲取了部分公司名稱列表['貴州茅臺(tái)''五糧液''瀘州老窖'],以及這些公司對(duì)應(yīng)的毛利率[0'.75'0'.66'0'.58'],注意獲取到的毛利率格式為字符串類型。依次判斷各家公司的毛利率是否大于0.6,大于則輸出“xx公司的毛利率優(yōu)秀”,否則輸出“xx公司的毛利率正常”。name=['貴州茅臺(tái)','五糧液','瀘州老窖']GP=['0.75','0.66','0.58']foriinrange(len(name)):

iffloat(GP[i])>0.6:

print(name[i]+'公司的毛利率優(yōu)秀')

else:

print(name[i]+'公司的毛利率正常')15.創(chuàng)建一個(gè)名為transcode的函數(shù),實(shí)現(xiàn)輸入股票的6位數(shù)字代碼可自動(dòng)輸出股票的完整代碼(即包含上交所后綴名“.SH”或深交所后綴名“.SZ”)。使用該封裝好的函數(shù)批量判斷列表stock=[‘600519',‘000725',

‘600031']并輸出結(jié)果。(提示:上交所的股票代碼通常是6開(kāi)頭,深交所的股票代碼通常是0開(kāi)頭。deftranscode(code):

ifcode[0]=='6':

print(code+'.SH')

else:

print(code+'.SZ')

stock=['600519','000725','600031']foriinstock:

transcode(i)第二章通過(guò)Python接口快速獲取財(cái)務(wù)數(shù)據(jù)Part1:?jiǎn)雾?xiàng)選擇題1.使用tushare獲取利潤(rùn)表中營(yíng)業(yè)總收入的輸出變量為(C)A:oth_b_income B:total_profiC:total_revenue D:operate_profit2.使用tushare獲取經(jīng)營(yíng)活動(dòng)產(chǎn)生的現(xiàn)金流量?jī)纛~的輸出變量為(A)A:n_cashflow_act B:free_cashflow C:n_cashflow_inv_act D:n_cash_flows_fnc_act3.使用tushare獲取交易性金融資產(chǎn)的輸出變量為(B)A:intan_assets B:trad_assetC:acct_payable D:lt_eqt_investPart2:多項(xiàng)選擇題1.以下屬于獲取資產(chǎn)負(fù)債表輸入?yún)?shù)的是(ABC)A、ts_codeB、PeriodC、FieldsD、Date2.以下為tushare可用的接口是(BD)A、Balance資產(chǎn)負(fù)債表的接口是balancesheet,該選項(xiàng)不完整B、stock_company上市公司基本信息接口C、stk_auditD、fina_mainbz主營(yíng)業(yè)務(wù)構(gòu)成接口B:上市公司基本信息接口D:主營(yíng)業(yè)務(wù)構(gòu)成接口A、C為拼寫(xiě)錯(cuò)誤選項(xiàng)Part3:判斷題1.在獲取宏觀數(shù)據(jù)時(shí),獲取GDP數(shù)據(jù)的開(kāi)始季度為必選參數(shù),結(jié)束季度為可選參數(shù)。錯(cuò)誤,均非必選參數(shù)。Part4:代碼練習(xí)題1.參照2.2.4小節(jié)內(nèi)容,利用Tushare接口獲取中信特鋼(000708.SZ)、撫順特鋼(600399.SH)、方大特鋼(600507.SH)2018至2020年三張報(bào)表的數(shù)據(jù),并另存為excel文件。importtushareastspro=_api('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')#需要獲取數(shù)據(jù)的公司名稱、股票代碼、年份comps=['中信特鋼','撫順特鋼','方大特鋼']codes=['000708.SZ','600399.SH','600507.SH']years=[2020,2019,2018]#循環(huán)獲取語(yǔ)句foriinrange(len(comps)):

foryearinyears:

df_balance=pro.balancesheet(ts_code=codes[i],period=str(year)+'1231')

df_income=pro.income(ts_code=codes[i],period=str(year)+'1231')

df_cash=pro.cashflow(ts_code=codes[i],period=str(year)+'1231')

#保存為表格

df_balance.to_excel(comps[i]+'_資產(chǎn)負(fù)債表_'+str(year)+'年.xlsx')

df_income.to_excel(comps[i]+'_利潤(rùn)表_'+str(year)+'年.xlsx')

df_cash.to_excel(comps[i]+'_現(xiàn)金流量表_'+str(year)+'年.xlsx')2.參照2.3.1小節(jié)內(nèi)容,利用Tushare接口獲取撫順特鋼(600399.SH)基本信息、管理層信息、財(cái)務(wù)審計(jì)意見(jiàn)(2016年至2020年)以及主營(yíng)業(yè)務(wù)構(gòu)成(分別按地區(qū)和業(yè)務(wù))。df=pro.stock_company(ts_code='600399.SH',fields='ts_code,chairman,reg_capital,introduction,employees,main_business,business_scope')df#JupyterNotebook中輸入變量名打印,Pycharm中需輸入print(df)df=pro.stk_managers(ts_code='600399.SH')df#JupyterNotebook中輸入變量名打印,Pycharm中需輸入print(df)audit=pro.fina_audit(ts_code='600519.SH',start_date='20160101',end_date='20210101')print(audit)df=pro.fina_mainbz(ts_code='600399.SH',period='20201231',type='P')df#JupyterNotebook中直接輸入變量名打印,Pycharm中需要輸入print(df)df=pro.fina_mainbz(ts_code='600399.SH',period='20201231',type='D')df#JupyterNotebook中直接輸入變量名打印,Pycharm中需要輸入print(df)3.參照2.3.2小節(jié)內(nèi)容,利用Tushare接口獲取撫順特鋼(600399.SH)所屬行業(yè)、地域和上市時(shí)間信息。df_fstg=pro.stock_basic(ts_code='600399.SH',fields='ts_code,symbol,name,area,industry,list_date')

df_fstg4.參照2.3.3小節(jié)內(nèi)容,利用Tushare接口獲取‘上證A指’指數(shù)2021年上半年的行情數(shù)據(jù)。(提示,先利用index_basic接口獲得指數(shù)代碼)。df=pro.index_basic(name='上證A指')df#JupyterNotebook中直接輸入變量名打印,Pycharm中需要輸入print(df)

5.參照2.3.4小節(jié)內(nèi)容,利用Tushare接口獲取2020年一整年的LIBOR拆借利率數(shù)據(jù)(提示:相關(guān)接口為pro.libor)。df=pro.libor(start_date='20200101',end_date='20201201')df#JupyterNotebook中直接輸入變量名打印,Pycharm中需要輸入print(df)第三章財(cái)務(wù)數(shù)據(jù)分析利器--Pandas庫(kù)Part1:?jiǎn)雾?xiàng)選擇題1.以下不為常用創(chuàng)建DataFrame的方法是(C)A:通過(guò)列表創(chuàng)建

B:通過(guò)字典創(chuàng)建C:通過(guò)字符串創(chuàng)建 D:通過(guò)外部導(dǎo)入excel該題選C。常用的創(chuàng)建方法為列表法、字典法、空DF法、導(dǎo)入法等。2.對(duì)名為data的dataframe進(jìn)行數(shù)據(jù)篩選時(shí),獲取多列二維表格的方法是(C)A:a=data['c1'] series一維 B:b=data[['c1']]只有一列C:c=data[['c1','c3']]

D:d=data.iloc[1,1]寫(xiě)法不對(duì)該題選C。A:為一維數(shù)組B:獲取單列dataframeD:錯(cuò)誤寫(xiě)法3.根據(jù)列對(duì)數(shù)據(jù)進(jìn)行排序時(shí),要對(duì)c2列進(jìn)行降序排序,應(yīng)輸入ascending=(A)A:False B:TrueC:Up D:Down該題選A。對(duì)數(shù)據(jù)進(jìn)行排序時(shí),使用False代表降序、True代表升序。Pandas-Part2:多項(xiàng)選擇題1.以下為Dataframe常用的拼接方法是(ABC)A、merge()函數(shù)B、concat()函數(shù)C、append()函數(shù)D、extend()函數(shù)該題選ABC。前三項(xiàng)為DF常用拼接方法,選項(xiàng)D用于在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)2.在多個(gè)篩選條件時(shí),可用的連接符號(hào)是(CD)A、+B、AndC、&D、|該題選CD。在對(duì)DF篩選時(shí)多個(gè)條件的拼接符號(hào)通常為&或|Pandas-Part3:判斷題1.使用merge函數(shù)進(jìn)行兩個(gè)Dataframe合并時(shí),默認(rèn)的合并是取并集。錯(cuò)誤。默認(rèn)的合并是取交集,若要取并集,需要設(shè)置how參數(shù)。Pandas-Part4:代碼練習(xí)題1.pandas入門-創(chuàng)建二維表格(1)通過(guò)列表,創(chuàng)建如下DataFrame。01201020301405060(2)通過(guò)設(shè)置行、列索引的列表創(chuàng)建方式,創(chuàng)建如下DataFrame。人均收入人均支出中國(guó)80006000韓國(guó)70005000美國(guó)65004000(3)通過(guò)創(chuàng)建一個(gè)空DataFrame,然后列表添加的方式,創(chuàng)建如下DataFrame。日期分?jǐn)?shù)0292149526100(4)修改上一小題的列名為date和score。答:(1)importpandasaspda=pd.DataFrame([[10,20,30],[40,50,60]])(2)a=pd.DataFrame([[8000,6000],[7000,5000],[6500,4000]],columns=['人均收入','人均支出'],index=['中國(guó)','韓國(guó)','美國(guó)'])(3)a=pd.DataFrame()#創(chuàng)建一個(gè)空DataFramedate=[2,4,6]score=[92,95,100]a['日期']=datea['分?jǐn)?shù)']=score(4)a=pd.DataFrame()#創(chuàng)建一個(gè)空DataFramedate=[2,4,6]score=[92,95,100]a['日期']=datea['分?jǐn)?shù)']=score#方法1a.columns=['date','score']#方法2a=a.rename(columns={'日期':'date','分?jǐn)?shù)':'score'})#方法3a.rename(columns={'日期':'date','分?jǐn)?shù)':'score'},inplace=True)2.pandas基礎(chǔ)操作1-數(shù)據(jù)選?。?分)已知如下表格數(shù)據(jù),為3人的日常生活繳費(fèi)情況:(1)根據(jù)列篩選數(shù)據(jù)查看3人的房租情況,此外,查看3人的水費(fèi)和房租的情況importpandasaspddf=pd.DataFrame([[10,20,30],[40,50,60],[70,80,90]],columns=['水費(fèi)','電費(fèi)','房租'],index=['丁一','王二','張三'])a=df['房租']#也可以寫(xiě)成a=df[['房租']]print(a)b=df[['水費(fèi)','房租']]print(b)(2)根據(jù)行篩選數(shù)據(jù)查看第2到3行的數(shù)據(jù),此外,查看最后一行的數(shù)據(jù)。importpandasaspddf=pd.DataFrame([[10,20,30],[40,50,60],[70,80,90]],columns=['水費(fèi)','電費(fèi)','房租'],index=['丁一','王二','張三'])a=df[1:3]#也可以寫(xiě)成a=df.iloc[1:3],或者df.iloc[1,2]print(a)b=df.iloc[-1]#本題因?yàn)樾袛?shù)不多,也可以寫(xiě)成df.iloc[2]print(b)(3)按照區(qū)塊來(lái)選取數(shù)據(jù)查看丁一和王二的水費(fèi)和房租情況importpandasaspddf=pd.DataFrame([[10,20,30],[40,50,60],[70,80,90]],columns=['水費(fèi)','電費(fèi)','房租'],index=['丁一','王二','張三'])a=df.iloc[0:2][['水費(fèi)','房租']]print(a)(4)iloc函數(shù)同時(shí)選擇行和列查看王二的電費(fèi)情況importpandasaspddf=pd.DataFrame([[10,20,30],[40,50,60],[70,80,90]],columns=['水費(fèi)','電費(fèi)','房租'],index=['丁一','王二','張三'])a=df.iloc[1]['電費(fèi)']#或者寫(xiě)成a=df.iloc[1][['電費(fèi)']]print(a)(5)iloc函數(shù)和loc函數(shù)的主要區(qū)別簡(jiǎn)介iloc函數(shù)和loc函數(shù)的主要區(qū)別iloc是根據(jù)數(shù)字進(jìn)行索引,而loc是根據(jù)名稱進(jìn)行索引3.pandas基礎(chǔ)操作2-表頭篩選請(qǐng)讀取該Excel表格(信息表-單頁(yè).xlsx),并將表頭設(shè)置為第二行內(nèi)容,且正式內(nèi)容從第三行開(kāi)始。信息表-單頁(yè).xlsx變成如下格式:答:(讀取Excel1分,設(shè)置表頭2分,從第三行開(kāi)始提取數(shù)據(jù)2分)importpandasaspddf=pd.read_excel('信息表-單頁(yè).xlsx')df.columns=df.iloc[0]df=df[1:]df4.pandas基礎(chǔ)操作3-按特定條件篩選(4分)(1)篩選如下表格中電費(fèi)列大于20的內(nèi)容(2)篩選如下表格中電費(fèi)列大于20且房租列小于85的內(nèi)容答:(每小問(wèn)2分)(1)importpandasaspddf=pd.DataFrame([['張三',20,30],['李四',50,60],['張三',80,90]],columns=['姓名','電費(fèi)','房租'])a=df[df['電費(fèi)']>20]print(a)(2)importpandasaspddf=pd.DataFrame([['張三',20,30],['李四',50,60],['張三',80,90]],columns=['姓名','電費(fèi)','房租'])a=df[(df['電費(fèi)']>20)&(df['房租']<85)]#需要加括號(hào)print(a)5.pandas基礎(chǔ)操作4-數(shù)據(jù)運(yùn)算、排序與刪除(6分)(1)運(yùn)算計(jì)算下面每個(gè)人的電費(fèi)加房租的和(2)排序按照房租的價(jià)格,進(jìn)行倒序排列表格(3)刪除刪除姓名列答:(每小問(wèn)2分)(1)importpandasaspddf=pd.DataFrame([['張三',20,30],['李四',50,60],['趙五',80,90]],columns=['姓名','電費(fèi)','房租'])df['電費(fèi)+房租']=df['電費(fèi)']+df['房租']print(df)(2)importpandasaspddf=pd.DataFrame([['張三',20,30],['李四',50,60],['趙五',80,90]],columns=['姓名','電費(fèi)','房租'])a=df.sort_values('房租',ascending=False)

print(a)

(3)importpandasaspddf=pd.DataFrame([['張三',20,30],['李四',50,60],['趙五',80,90]],columns=['姓名','電費(fèi)','房租'])a=df.drop(columns='姓名')

print(a)

#方法2df.drop(columns='姓名',inplace=True)

6.數(shù)據(jù)表拼接(6分)將下面3個(gè)Excel工作簿(信息表-技術(shù)部.xlsx;信息表-財(cái)務(wù)部.xlsx;信息表-行政部.xlsx)中的sheet表單“員工信息表”合并為一張表,并存為“匯總信息表.xlsx”。信息表-技術(shù)部.xlsx信息表-財(cái)務(wù)部.xlsx信息表-行政部.xlsx答:(數(shù)據(jù)讀取2分,數(shù)據(jù)拼接3分,數(shù)據(jù)導(dǎo)出1分)importpandasaspddf1=pd.read('信息表-技術(shù)部.xlsx',sheet_name='員工信息表')df2=pd.read('信息表-財(cái)務(wù)部.xlsx',sheet_name='員工信息表')df3=pd.read('信息表-行政部.xlsx',sheet_name='員工信息表')df_all=pd.DataFrame()df_all=df_all.append(df1).append(df2).append(df3)#也可以拆成3行寫(xiě)df_all.to_excel('匯總信息表.xlsx',index=False)第四章財(cái)務(wù)可視化基礎(chǔ)

-Matplotlib庫(kù)Part1:?jiǎn)雾?xiàng)選擇題1.以下哪個(gè)代表繪制折線圖(A)A:plt.plot() B:plt.scatter()C:plt.bar() D:plt.hist()選擇A。其余選項(xiàng)分別為柱狀圖、散點(diǎn)圖、直方圖。2.折線圖設(shè)置線條實(shí)虛格式使用哪個(gè)參數(shù)(B)A:figure B:linestyle C:bins D:edgecolormarkersize:標(biāo)記大小color:線條顏色marker:數(shù)據(jù)標(biāo)記的形狀,默認(rèn)是沒(méi)有標(biāo)記linestyle:線條樣式,默認(rèn)為實(shí)線3.哪個(gè)函數(shù)用來(lái)設(shè)置雙坐標(biāo)軸(D)A:plt.twin-x()B:plt.xticks()C:plt.title() D:plt.twinx()選擇D。使用twinx設(shè)置雙坐標(biāo)軸4.設(shè)置‘長(zhǎng)為800、寬為600’像素,以下代碼哪個(gè)是正確的(B)A.plt.rcParams['figure.figsize']=(800,600)B.plt.rcParams['figure.figsize']=(8,6)C.plt.rcParams['figure.figsize']=(600,800)D.plt.rcParams['figure.figsize']=(6,8)選擇B。設(shè)置像素時(shí)括號(hào)為先長(zhǎng)后寬,100像素=15.哪個(gè)代碼可以解決中文顯示的問(wèn)題(B)A.plt.rcParams['axes.unicode_minus']=FalseB.plt.rcParams['font.sans-serif']=['SimHei']C.plt.rcParams['loc']=['SimHei']D.plt.rcParams['label']=['SimHei']選擇B。使用plt.rcParams['font.sans-serif']進(jìn)行中文字體設(shè)置。Part2:多項(xiàng)選擇題1.mplfinance能繪制哪些內(nèi)容(ABC)A.收盤(pán)價(jià)B.成交價(jià)C.均線D.下一日價(jià)格預(yù)測(cè)選擇ABC。mplfinance沒(méi)有下一日預(yù)測(cè)的功能。Part3:判斷題1.Matplotlib不能顯示負(fù)號(hào)。錯(cuò)誤??梢燥@示,代碼是plt.rcParams['axes.unicode_minus']=FalsePart4:代碼題1.利用給出的數(shù)據(jù)(源代碼文件中獲?。瑓⒄?.3.2小節(jié)的方法繪制白酒行業(yè)該年的凈利潤(rùn)率同業(yè)比較圖。要求:數(shù)值升序顯示,標(biāo)簽位于圖形左上角。得到的結(jié)果參考下圖4-24:data=pd.read_excel('第四章第一題初始數(shù)據(jù).xlsx')#2、繪圖plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(10,6))plt.bar(data['name'],data['netprofit_margin'],label='銷售凈利率')plt.legend(loc='upperleft')plt.xticks(data['name'],rotation=45)plt.show()2.利用貴州茅臺(tái)和五糧液從2010年至今(最新)的銷售凈利率數(shù)據(jù),繪制雙坐標(biāo)軸折線圖比較趨勢(shì)。得到的結(jié)果參考下圖4-25:data=pd.read_excel('第四章第二題原始數(shù)據(jù).xlsx')plt.figure(figsize=(15,9))plt.plot(data['時(shí)間'],data['茅臺(tái)凈利率'],color='red',linestyle='--',label='貴州茅臺(tái)')plt.legend(loc='upperleft')

#該圖圖例設(shè)置在左上角plt.xticks(data['時(shí)間'],rotation=45)plt.twinx()

#設(shè)置雙坐標(biāo)軸plt.plot(data['時(shí)間'],data['五糧液凈利率'],label='五糧液')plt.legend(loc='upperright')

#改圖圖例設(shè)置在右上角plt.xticks(data['時(shí)間'],rotation=45)plt.show()3.參照4.3.1小節(jié)的方法,繪制貴州茅臺(tái)2021年3月1日至9月30日半年間的股價(jià)K線圖。得到的結(jié)果參考下圖4-26:importpandasaspdimporttushareastsimportmatplotlib.pyplotaspltimportmplfinanceasmpf#1、獲取行情信息pro=_api('75fe6c69bb10c996a556a402dde9fdf6e691dfdd2c30ff028ebd5a37')df0=pro.stock_basic(name='貴州茅臺(tái)',fields='ts_code')codename=df0.loc[0]['ts_code']df=pro.daily(ts_code=codename,start_date='20210301',end_date='20210930')data=df[['trade_date','open','close','high','low','vol']]data.columns=['Date','Open','Close','High','Low','Volume']data=data.rename(columns={'trade_date':'Date','open':'Open','close':'Close','high':'High','low':'Low','vol':'Volume'})data.set_index('Date',inplace=True)data.index=pd.DatetimeIndex(data.index)data=data.sort_index(ascending=True)#2、繪圖my_color=mpf.make_marketcolors(up='red',down='green')my_style=mpf.make_mpf_style(marketcolors=my_color)mpf.plot(data,type='candle',mav=(5,10,20),volume=True,show_nontrading=False,style=my_style)第五章

財(cái)務(wù)靜態(tài)分析Part1:?jiǎn)雾?xiàng)選擇題1.想要獲取存貨的上一期數(shù)據(jù),可以使用哪種方法(C)A:data['存貨(上期)']=data['存貨'].shift(+1) B:data['存貨(上期)']=data['存貨'].shift(0) C:data['存貨(上期)']=data['存貨'].shift(-1) D:data['存貨(上期)']=data['存貨'].shift(1) 選擇C。-1代表上一期2.分析時(shí)如何保留小數(shù)(A)A:round B:ratio C:flow D:str選擇A。詳情見(jiàn)第一章。3.除了自己運(yùn)算,tushare哪個(gè)參數(shù)可以輸出財(cái)務(wù)指標(biāo)(B)A:fina_indicateB:fina_indicatorC:fina_title() D:fina_balance()選擇B。使用indicator函數(shù)獲取財(cái)務(wù)指標(biāo),其余接口含義詳見(jiàn)第三章。Part2:多項(xiàng)選擇題1.使用Python進(jìn)行靜態(tài)分析可以分析哪些內(nèi)容(ABCD)A.盈利能力B.運(yùn)營(yíng)能力C.償債能力D.成長(zhǎng)能力選擇ABCD。python靜態(tài)分析通常為運(yùn)營(yíng)、盈利、償債、成長(zhǎng)四部分。Part3:代碼題1.參照本章的內(nèi)容,獲取貴州茅臺(tái)(或讀者自己感興趣的其他公司)2015-2020年的相關(guān)數(shù)據(jù),從上述四個(gè)方面進(jìn)行財(cái)務(wù)分析。importpandasaspdimportnumpyasnpimporttushareastsimportmatplotlib.pyplotaspltpro=_api('75fe6c69bb10c996a556a402dde9fdf6e691dfdd2c30ff028ebd5a37')df_balancesheet=pd.read_excel('貴州茅臺(tái).xlsx',sheet_name='資產(chǎn)負(fù)債表')df_income=pd.read_excel('貴州茅臺(tái).xlsx',sheet_name='利潤(rùn)表')df_cashflow=pd.read_excel('貴州茅臺(tái).xlsx',sheet_name='現(xiàn)金流量表')data=pd.merge(df_income,df_balancesheet,on='報(bào)告期')

data=pd.merge(data,df_cashflow,on='報(bào)告期')data=pd.merge(df_income,df_balancesheet,on=['報(bào)告期','TS股票代碼','公告日期','實(shí)際公告日期','報(bào)表類型','公司類型'])#按報(bào)告期列進(jìn)行合并data=pd.merge(data,df_cashflow,on=['報(bào)告期','TS股票代碼','公告日期','實(shí)際公告日期','報(bào)表類型','公司類型'])data#盈利能力data['毛利率']=round((data['營(yíng)業(yè)收入']-data['減:營(yíng)業(yè)成本'])/data['營(yíng)業(yè)收入'],4)

data['營(yíng)業(yè)利潤(rùn)率']=round((data['營(yíng)業(yè)利潤(rùn)'])/data['營(yíng)業(yè)收入'],4)

data['凈利潤(rùn)率']=round(data['凈利潤(rùn)(含少數(shù)股東損益)']/data['營(yíng)業(yè)收入'],4)

df_2014=pro.balancesheet(ts_code='600519.SH',period='20141231')[-1:]asset_2014=df_2014['total_hldr_eqy_exc_min_int'][0]asset0=data['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)'][1:].to_list()asset0.append(asset_2014)data['股東權(quán)益(上期余額)']=asset0data['ROE']=round(data['凈利潤(rùn)(不含少數(shù)股東損益)']/((data['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)']+data['股東權(quán)益(上期余額)'])/2),4)data[['TS股票代碼','報(bào)告期','毛利率','營(yíng)業(yè)利潤(rùn)率','凈利潤(rùn)率','ROE']]#運(yùn)營(yíng)能力data['毛利率']=round((data['營(yíng)業(yè)收入']-data['減:營(yíng)業(yè)成本'])/data['營(yíng)業(yè)收入'],4)

data['營(yíng)業(yè)利潤(rùn)率']=round((data['營(yíng)業(yè)利潤(rùn)'])/data['營(yíng)業(yè)收入'],4)

data['凈利潤(rùn)率']=round(data['凈利潤(rùn)(含少數(shù)股東損益)']/data['營(yíng)業(yè)收入'],4)

df_2014=pro.balancesheet(ts_code='600519.SH',period='20141231')[-1:]asset_2014=df_2014['total_hldr_eqy_exc_min_int'][0]asset0=data['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)'][1:].to_list()asset0.append(asset_2014)data['股東權(quán)益(上期余額)']=asset0data['ROE']=round(data['凈利潤(rùn)(不含少數(shù)股東損益)']/((data['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)']+data['股東權(quán)益(上期余額)'])/2),4)data[['TS股票代碼','報(bào)告期','毛利率','營(yíng)業(yè)利潤(rùn)率','凈利潤(rùn)率','ROE']]#償債能力data['流動(dòng)比率']=round(data['流動(dòng)資產(chǎn)合計(jì)']/data['流動(dòng)負(fù)債合計(jì)'],4)

data['速動(dòng)比率']=round((data['流動(dòng)資產(chǎn)合計(jì)']-data['存貨']-data['預(yù)付款項(xiàng)'])/data['流動(dòng)負(fù)債合計(jì)'],4)

data['利息保障倍數(shù)']=round(data['息稅前利潤(rùn)']/data['減:利息支出'],4)

data[['TS股票代碼','報(bào)告期','流動(dòng)比率','速動(dòng)比率','利息保障倍數(shù)']]#成長(zhǎng)能力#1、現(xiàn)金比率:現(xiàn)金比率=(流動(dòng)資產(chǎn)合計(jì)-存貨-預(yù)付款項(xiàng)-應(yīng)收賬款)/流動(dòng)負(fù)債合計(jì))data=pro.balancesheet(ts_code='600518.SH',start_date='20150101')data['股票代碼']=data['ts_code']data['報(bào)告期']=data['end_date']data['現(xiàn)金比率']=round((data['total_cur_assets']-data['inventories']-data['prepayment']-data['accounts_receiv'])/data['total_cur_liab'],4)data[['股票代碼','報(bào)告期','現(xiàn)金比率']]#2、凈資產(chǎn)增長(zhǎng)率=(期末凈資產(chǎn)-期初凈資產(chǎn))/期初凈資產(chǎn))df_2014=pro.balancesheet(ts_code='600518.SH',period='20141231')[-1:]theemi_14=df_2014['total_hldr_eqy_exc_min_int'].iloc[0]theemi0=data['total_hldr_eqy_exc_min_int'][1:].to_list()theemi0.append(theemi_14)data['期初凈資產(chǎn)']=theemi0data['凈資產(chǎn)增長(zhǎng)率']=round((data['total_hldr_eqy_exc_min_int']-data['期初凈資產(chǎn)'])/data['期初凈資產(chǎn)'],4)data[['股票代碼','報(bào)告期','凈資產(chǎn)增長(zhǎng)率']]#3、固定資產(chǎn)增長(zhǎng)率=營(yíng)業(yè)收入/[(期初凈資產(chǎn)+期末凈資產(chǎn))/2]data1=pro.balancesheet(ts_code='600518.SH',start_date='20141231')df_ic=pro.income(ts_code='600518.SH',start_date='20141231')df=pd.merge(data1,df_ic,on='end_date')theemi_14=df_2014['total_hldr_eqy_exc_min_int'].iloc[0]theemi0=df['total_hldr_eqy_exc_min_int'][1:].to_list()theemi0.append(theemi_14)df['期初凈資產(chǎn)']=theemi0df['報(bào)告期']=df['end_date']df['固定資產(chǎn)增長(zhǎng)率']=round((df['revenue']/(df['期初凈資產(chǎn)']+df['total_hldr_eqy_exc_min_int'])/2),4)data['固定資產(chǎn)增長(zhǎng)率']=df[['固定資產(chǎn)增長(zhǎng)率']]data[['股票代碼','報(bào)告期','現(xiàn)金比率','凈資產(chǎn)增長(zhǎng)率','固定資產(chǎn)增長(zhǎng)率']]2.除了本章提到的指標(biāo)之外,讀者可以再構(gòu)造幾個(gè)其他指標(biāo)(現(xiàn)金比率(計(jì)算公式:現(xiàn)金比率=(流動(dòng)資產(chǎn)合計(jì)-存貨-預(yù)付款項(xiàng)-應(yīng)收賬款)/流動(dòng)負(fù)債合計(jì))、凈資產(chǎn)增長(zhǎng)率(計(jì)算公式:凈資產(chǎn)增長(zhǎng)率=(期末凈資產(chǎn)-期初凈資產(chǎn))/期初凈資產(chǎn))、固定資產(chǎn)周轉(zhuǎn)率(計(jì)算公式:固定資產(chǎn)周轉(zhuǎn)率=營(yíng)業(yè)收入/[(期初凈資產(chǎn)+期末凈資產(chǎn))/2])),參照已有指標(biāo)的計(jì)算方法,利用Python進(jìn)行指標(biāo)計(jì)算(而不是直接利用財(cái)務(wù)指標(biāo)接口)。#現(xiàn)金比率data=data.fillna(0)data['現(xiàn)金比率']=round((data['流動(dòng)資產(chǎn)合計(jì)']-data['存貨']-data['預(yù)付款項(xiàng)']-data['應(yīng)收賬款'])/data['流動(dòng)負(fù)債合計(jì)'],4)data[['TS股票代碼','報(bào)告期','現(xiàn)金比率']]#凈資產(chǎn)增長(zhǎng)率#計(jì)算凈資產(chǎn)data['凈資產(chǎn)']=data['資產(chǎn)總計(jì)']-data['負(fù)債合計(jì)']#獲取2014年的凈資產(chǎn)數(shù)據(jù)df_2014=pro.balancesheet(ts_code='600519.SH',period='20141231')[-1:]asset_14=df_2014['total_assets'].iloc[0]-df_2014['total_liab'].iloc[0]#把2014年~2018年的資產(chǎn)、作為新列表,并把列表加入表格asset0=data['凈資產(chǎn)'][1:].to_list()asset0.append(asset_14)data['凈資產(chǎn)(上期余額)']=asset0#計(jì)算營(yíng)業(yè)利潤(rùn)增長(zhǎng)率data['凈資產(chǎn)增長(zhǎng)率']=round((data['凈資產(chǎn)']-data['凈資產(chǎn)(上期余額)'])/data['凈資產(chǎn)(上期余額)'],4)data[['TS股票代碼','報(bào)告期','凈資產(chǎn)增長(zhǎng)率']]#總資產(chǎn)周轉(zhuǎn)率#獲取2014年的固定資產(chǎn)數(shù)據(jù)df_2014=pro.balancesheet(ts_code='600519.SH',period='20141231')[-1:]inv_2014=df_2014['fix_assets'][0]#把2014年~2018年的固定資產(chǎn)作為新列表,并把列表加入表格inv0=data['固定資產(chǎn)'][1:].to_list()inv0.append(inv_2014)data['固定資產(chǎn)(上期余額)']=inv0#計(jì)算固定資產(chǎn)周轉(zhuǎn)率data['固定資產(chǎn)周轉(zhuǎn)率']=round(data['營(yíng)業(yè)收入']/((data['固定資產(chǎn)']+data['固定資產(chǎn)(上期余額)'])/2),4)data[['TS股票代碼','報(bào)告期','固定資產(chǎn)周轉(zhuǎn)率']]3.根據(jù)第2題的作答,適當(dāng)改寫(xiě)獲取多家公司數(shù)據(jù)的代碼,加入你自己寫(xiě)好的指標(biāo)計(jì)算公式,并利用該函數(shù)調(diào)取貴州茅臺(tái)、五糧液、瀘州老窖(或者讀者感興趣的其他上市公司)2015-2020年的財(cái)務(wù)數(shù)據(jù)。pro=_api('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')#定義獲取三張報(bào)表的函數(shù)defaccess_data(comps,codes,years):

#定義列重命名函數(shù),把列名自動(dòng)改為中文名

defrename_col(data):

rename_sheet=pd.read_excel('重命名.xlsx')

eng=rename_sheet['名稱'].tolist()

chi=rename_sheet['描述'].tolist()

re_dict=dict(zip(eng,chi))

data=data.rename(columns=re_dict)

returndata

foriinrange(len(comps)):

#各新建一個(gè)空DataFrame

df_balance=pd.DataFrame()

df_income=pd.DataFrame()

df_cash=pd.DataFrame()

foryearinyears:

df_balance0=pro.balancesheet(ts_code=codes[i],period=str(year)+'1231')[-1:]

df_income0=pro.income(ts_code=codes[i],period=str(year)+'1231')[-1:]

df_cash0=pro.cashflow(ts_code=codes[i],period=str(year)+'1231')[-1:]

#拼接各年份報(bào)表

df_balance=df_balance.append(df_balance0)

df_income=df_income.append(df_income0)

df_cash=df_cash.append(df_cash0)

#更改索引名稱

df_balance=rename_col(df_balance)

df_income=rename_col(df_income)

df_cash=rename_col(df_cash)

#保存為表格

writer=pd.ExcelWriter(comps[i]+'.xlsx')

df_balance.to_excel(writer,'資產(chǎn)負(fù)債表',index=False)

df_income.to_excel(writer,'利潤(rùn)表',index=False)

df_cash.to_excel(writer,'現(xiàn)金流量表',index=False)

writer.save()#定義財(cái)務(wù)比率表生成函數(shù)defratio_sheet(comps):

forcompincomps:

#讀取報(bào)表數(shù)據(jù)

df_balancesheet=pd.read_excel(comp+'.xlsx',sheet_name='資產(chǎn)負(fù)債表')

df_income=pd.read_excel(comp+'.xlsx',sheet_name='利潤(rùn)表')

df_cashflow=pd.read_excel(comp+'.xlsx',sheet_name='現(xiàn)金流量表')

#報(bào)表拼接

data=pd.merge(df_income,df_balancesheet,on=['報(bào)告期','TS股票代碼','公告日期','實(shí)際公告日期','報(bào)表類型','公司類型'])

data=pd.merge(data,df_cashflow,on=['報(bào)告期','TS股票代碼','公告日期','實(shí)際公告日期','報(bào)表類型','公司類型'])

#把空值填充為0,防止計(jì)算出錯(cuò)

data=data.fillna(0)

#把相關(guān)數(shù)據(jù)的上期余額加入新表,包括股東權(quán)益、存貨、資產(chǎn)總計(jì)、應(yīng)收賬款、營(yíng)業(yè)收入、營(yíng)業(yè)利潤(rùn)、負(fù)債合計(jì)、凈利潤(rùn)(不含少數(shù)股東損益)

columns0=['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)','存貨','資產(chǎn)總計(jì)','固定資產(chǎn)','應(yīng)收賬款','營(yíng)業(yè)收入','營(yíng)業(yè)利潤(rùn)','負(fù)債合計(jì)','凈利潤(rùn)(不含少數(shù)股東損益)']

forcolumnincolumns0:

data[column+'(上期)']=data[column].shift(-1)

#去除2014年數(shù)據(jù),只取前五行數(shù)據(jù)保存

data=data[0:5]

#計(jì)算各項(xiàng)指標(biāo)

#盈利能力

data['毛利率']=round((data['營(yíng)業(yè)收入']-data['減:營(yíng)業(yè)成本'])/data['營(yíng)業(yè)收入'],4)

data['營(yíng)業(yè)利潤(rùn)率']=round((data['營(yíng)業(yè)利潤(rùn)'])/data['營(yíng)業(yè)收入'],4)

data['凈利潤(rùn)率']=round(data['凈利潤(rùn)(含少數(shù)股東損益)']/data['營(yíng)業(yè)收入'],4)

data['ROE']=round(data['凈利潤(rùn)(不含少數(shù)股東損益)']/((data['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)']+data['股東權(quán)益合計(jì)(不含少數(shù)股東權(quán)益)(上期)'])/2),4)

#營(yíng)運(yùn)能力

data['存貨周轉(zhuǎn)率']=round(data['減:營(yíng)業(yè)成本']/((data['存貨']+data['存貨(上期)'])/2),4)

data['總資產(chǎn)周轉(zhuǎn)率']=round(data['營(yíng)業(yè)收入']/((data['資產(chǎn)總計(jì)']+data['資產(chǎn)總計(jì)(上期)'])/2),4)

data['應(yīng)收賬款周轉(zhuǎn)率']=round(data['營(yíng)業(yè)收入']/((data['應(yīng)收賬款']+data['應(yīng)收賬款(上期)'])/2),4)

data['固定資產(chǎn)周轉(zhuǎn)率']=round(data['營(yíng)業(yè)收入']/((data['固定資產(chǎn)']+data['固定資產(chǎn)(上期余額)'])/2),4)

#償債能力

data['流動(dòng)比率']=round(data['流動(dòng)資產(chǎn)合計(jì)']/data['流動(dòng)負(fù)債合計(jì)'],4)

data['速動(dòng)比率']=round((data['流動(dòng)資產(chǎn)合計(jì)']-data['存貨']-data['預(yù)付款項(xiàng)'])/data['流動(dòng)負(fù)債合計(jì)'],4)

data['現(xiàn)金比率']=round((data['流動(dòng)資產(chǎn)合計(jì)']-data['存貨']-data['預(yù)付款項(xiàng)']-data['應(yīng)收賬款'])/data['流動(dòng)負(fù)債合計(jì)'],4)

data['利息保障倍數(shù)']=round(data['息稅前利潤(rùn)']/data['減:財(cái)務(wù)費(fèi)用'],4)

#成長(zhǎng)能力

data['營(yíng)業(yè)收入增長(zhǎng)率']=round((data['營(yíng)業(yè)收入']-data['營(yíng)業(yè)收入(上期)'])/data['營(yíng)業(yè)收入(上期)'],4)

data['營(yíng)業(yè)利潤(rùn)增長(zhǎng)率']=round((data['營(yíng)業(yè)利潤(rùn)']-data['營(yíng)業(yè)利潤(rùn)(上期)'])/data['營(yíng)業(yè)利潤(rùn)(上期)'],4)

data['凈資產(chǎn)']=data['資產(chǎn)總計(jì)']-data['負(fù)債合計(jì)']

data['凈資產(chǎn)(上期)']=data['資產(chǎn)總計(jì)(上期)']-data['負(fù)債合計(jì)(上期)']

data['凈資產(chǎn)增長(zhǎng)率']=round((data['凈資產(chǎn)']-data['凈資產(chǎn)(上期)'])/data['凈資產(chǎn)(上期)'],4)

data['凈利潤(rùn)增長(zhǎng)率']=round((data['凈利潤(rùn)(不含少數(shù)股東損益)']-data['凈利潤(rùn)(不含少數(shù)股東損益)(上期)'])/data['凈利潤(rùn)(不含少數(shù)股東損益)(上期)'],4)

#取出財(cái)務(wù)比率

df_ratio=data[

['報(bào)告期','毛利率','營(yíng)業(yè)利潤(rùn)率','凈利潤(rùn)率','ROE','存貨周轉(zhuǎn)率','總資產(chǎn)周轉(zhuǎn)率','應(yīng)收賬款周轉(zhuǎn)率','固定資產(chǎn)周轉(zhuǎn)率','現(xiàn)金比率','流動(dòng)比率','速動(dòng)比率','利息保障倍數(shù)','營(yíng)業(yè)收入增長(zhǎng)率',

'營(yíng)業(yè)利潤(rùn)增長(zhǎng)率','凈資產(chǎn)增長(zhǎng)率','凈利潤(rùn)增長(zhǎng)率']]

df_ratio=df_ratio.T

#轉(zhuǎn)置

#因?yàn)樯弦恍写a轉(zhuǎn)置之后,第一行是0/1/2/3……,我們希望把第二行的報(bào)告期作為表頭,并從第二行開(kāi)始取數(shù)

df_ratio.columns=df_ratio.iloc[0].apply(

lambdax:int(x))

#重新命名表頭,并且通過(guò)apply+lambda配合int取整函數(shù)將日期變成整數(shù)格式(原本保存成了小數(shù)格式)

df_ratio=df_ratio[1:]

#把財(cái)務(wù)比率保存為現(xiàn)有表格中的sheet

writer=pd.ExcelWriter(comp+'.xlsx',mode="a",engine="openpyxl")

df_ratio.to_excel(writer,'財(cái)務(wù)比率表')

writer.save()

returndf_ratio

#這行其實(shí)也可以不寫(xiě),主要就是為了查看下獲取的比率結(jié)果#批量需要獲取數(shù)據(jù)的公司名稱、股票代碼、年份comps=['貴州茅臺(tái)','五糧液','瀘州老窖']codes=['600519.SH','000858.SZ','000568.SZ']years=[2020,2019,2018,2017,2016,2015]#調(diào)用函數(shù)生成相關(guān)Excel文件access_data(comps,codes,years)df_ratio=ratio_sheet(comps)print(df_ratio)第六章

財(cái)務(wù)趨勢(shì)分析Part1:?jiǎn)雾?xiàng)選擇題1.以下哪個(gè)不屬于趨勢(shì)分析中的盈利能力分析()A:毛利率 B:存貨周轉(zhuǎn)率C:營(yíng)業(yè)利潤(rùn)率 D:ROE本題選b。b為運(yùn)營(yíng)能力分析中運(yùn)用的指標(biāo)。2.以下一定不屬于指標(biāo)越大越好的比率是(A)A:流動(dòng)比率B:毛利率C:存貨周轉(zhuǎn)率D:ROE流動(dòng)比率過(guò)大,可能是因?yàn)槠髽I(yè)存在貨幣資金閑置、應(yīng)收賬款過(guò)多或者存貨積壓的問(wèn)題,這意味著企業(yè)的資產(chǎn)使用效率低,賒銷業(yè)務(wù)的管理不善。3.哪一項(xiàng)不屬于常見(jiàn)的趨勢(shì)分析(C)A:盈利能力B:運(yùn)營(yíng)能力C:創(chuàng)新能力D:成長(zhǎng)能力本題選c。常見(jiàn)趨勢(shì)分析包括運(yùn)營(yíng)、盈利、成長(zhǎng)、償債。Part2:多項(xiàng)選擇題1.以下屬于成長(zhǎng)能力指標(biāo)的選項(xiàng)是(AC)A.營(yíng)收增長(zhǎng)率B.流動(dòng)比率C.營(yíng)業(yè)利潤(rùn)增長(zhǎng)率D.總資產(chǎn)周轉(zhuǎn)率本題選ac。b選項(xiàng)反應(yīng)償債能力、d選項(xiàng)反應(yīng)運(yùn)營(yíng)能力Part3:判斷題1.進(jìn)行趨勢(shì)分析綜合評(píng)分時(shí),必須給每項(xiàng)指標(biāo)相同的權(quán)重。錯(cuò)誤。應(yīng)該根據(jù)企業(yè)所在的行業(yè)特點(diǎn)以及企業(yè)自身的經(jīng)營(yíng)目標(biāo)和業(yè)務(wù)模式,合理設(shè)置不同指標(biāo)的權(quán)重。Part4:代碼題1.參照6.5節(jié)綜合評(píng)分的流程,自定義各指標(biāo)權(quán)重(注意權(quán)重之和為1),加總后看看總分有何變化,結(jié)合權(quán)重分布思考為何會(huì)有這種變化?#習(xí)題1:需要加上以下代碼:#權(quán)重分配僅供參考,無(wú)標(biāo)準(zhǔn)答案score_sheet['權(quán)重']=[0.05,0.05,0.05,0.1,0.05,0.05,0.1,0.05,0.1,0.05,0.1,0.1,0.05,0.1]trend_score=0foriinscore_sheet.shape[0]:

trend_score+=round(score_sheet.loc[i,'評(píng)分']*score_sheet.loc[i,'權(quán)重'],2)print(trend_score)2.沿用第1題的答案,嘗試對(duì)白酒行業(yè)所有上市公司進(jìn)行批量趨勢(shì)打分(獲取白酒行業(yè)所有上市公司代碼的方法可以提前學(xué)習(xí)下一章開(kāi)頭的內(nèi)容),并按照最終分?jǐn)?shù)降序排列。#首先需要利用上一章的函數(shù)獲取每個(gè)公司的財(cái)務(wù)數(shù)據(jù)com_data=pro.stock_basic(exchange='',list_status='L',fields='ts_code,symbol,name,area,industry,list_date')bj_com=com_data[com_data['industry']=='白酒']bj_list=bj_com['ts_code'].tolist()#批量需要獲取數(shù)據(jù)的公司名稱、股票代碼、年份comps=bj_com['name']codes=bj_listyears=[2020,2019,2018,2017,2016,2015]#調(diào)用函數(shù)生成相關(guān)Excel文件access_data(comps,codes,years)df_ratio=ratio_sheet(comps)result=pd.DataFrame()forcomincomps:

df_ratio=pd.read_excel(com+'.xlsx',sheet_name='財(cái)務(wù)比率表',header=0)

df_ratio=df_ratio.set_index('報(bào)告期')

data=df_ratio.T

scores=[]

foriinrange(len(data.T)):

n=0

forjinrange(4):

ifnp.isinf(data.iloc[j,i])==True:

n=n+1

elifdata.iloc[j,i]>data.iloc[j+1,i]:

n=n+1

#分?jǐn)?shù)標(biāo)準(zhǔn)化為100分

n=n/4*100

scores.append(n)

score_sheet=data.T

score_sheet['評(píng)分']=scores

score_sheet['權(quán)重']=[0.05,0.05,0.05,0.1,0.05,0.05,0.1,0.05,0.1,0.05,0.1,0.1,0.15]

trend_score=0

foriinscore_sheet.shape[0]:

trend_score+=round(score_sheet.loc[i,'評(píng)分']*score_sheet.loc[i,'權(quán)重'],2)

score_sheet.to_excel('貴州茅臺(tái)_趨勢(shì)評(píng)分表.xlsx')

result[com]=trend_scoreresult=result.T.sort_values(ascending=False)print(result)第七章財(cái)務(wù)同業(yè)比較分析Part1:?jiǎn)雾?xiàng)選擇題1.財(cái)務(wù)同業(yè)比較中,進(jìn)行凈資產(chǎn)收益率分析時(shí),采用什么ROE計(jì)算方式(C)A:平均ROEB:上期ROEC:全面攤薄ROED:加權(quán)平均ROE 本題選c。公式為:報(bào)告期歸母凈利潤(rùn)/報(bào)告期期末歸母凈資產(chǎn)2.財(cái)務(wù)同業(yè)比較中,進(jìn)行運(yùn)營(yíng)能力分析時(shí),常用的指標(biāo)為(A/B)A:存貨周轉(zhuǎn)率B:總資產(chǎn)周轉(zhuǎn)率C:速動(dòng)比率反映償債能力D:凈利潤(rùn)增長(zhǎng)率反映成長(zhǎng)能力本題選a。c反映償債能力、d反應(yīng)成長(zhǎng)能力。3.進(jìn)行同業(yè)比較時(shí),常用的python庫(kù)包括(A)A:pandasB:Scikit-learnC:NLPD:Requests本題選a。b在機(jī)器學(xué)習(xí)常見(jiàn)、c為nlp分析時(shí)使用、d為網(wǎng)頁(yè)爬蟲(chóng)。Part2:多項(xiàng)選擇題1.進(jìn)行同業(yè)比較時(shí),可視化主要選取什么方法(AC)A:同業(yè)直觀比較B:同業(yè)潛在比較C:同業(yè)統(tǒng)計(jì)量分析D:同業(yè)預(yù)測(cè)量分析本題選ac。bd不為同業(yè)比較可視化的主要內(nèi)容。Part3:判斷題1.進(jìn)行同業(yè)分析綜合評(píng)分時(shí),可以自行選取該行業(yè)中的部分企業(yè)進(jìn)行計(jì)算。(T)本題選ac。bd不為同業(yè)比較可視化的主要內(nèi)容。Part4:代碼題1.參照上述指標(biāo)的分析思路,同樣針對(duì)白酒行業(yè),分析2020年各公司利息保障倍數(shù)的表現(xiàn)(進(jìn)行可視化呈現(xiàn))。importpandasaspdtable=pd.DataFrame(index=range(1))forcominrange(data.shape[0]):

table.loc[0,data.loc[com,'name']]=round((data.loc[com,'ebit'])/(-data.loc[com,'fin_exp']),4)table=table.T.sort_values(0,ascending=False).Tplt.figure(figsize=(10,6))

#設(shè)置下圖片大小,不然有點(diǎn)擠plt.bar(table.columns,table.loc[0],label='利息保障倍數(shù)')plt.legend(loc='upperleft')

#設(shè)置圖例位置為左上角plt.xticks(range(len(table.columns)),table.columns,rotation=45)plt

溫馨提示

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

評(píng)論

0/150

提交評(píng)論