小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

利用python tushare pandas進(jìn)行財報分析

 老三的休閑書屋 2020-12-16

一、財報分析

大家在購買股票的時候,已經(jīng)不只是憑感覺去買了,基本上都會對一個股票進(jìn)行深入的分析。

畢竟購買股票還是一項風(fēng)險性較高的投資,需要在較為熟悉以后才能去開展,不能蠻干,錢也都不是天上掉下來的。那么作為散戶投資者,如何去分析一家企業(yè)的經(jīng)營狀況,基本上都是從從他們的財務(wù)報表入手,而且這些資料在上市公司的公告信息里都能查的到,這也是散戶比較好的分析一家企業(yè)的支撐材料。

財報分析,一般是通過詳細(xì)的閱讀上市公司定期披露的季報、半年報、年報,了解其中各項信息進(jìn)而進(jìn)行深度分析,當(dāng)然最終會利用分析結(jié)果去對股票進(jìn)行較為準(zhǔn)確的操作。

財報分析的對象是財務(wù)報表,財務(wù)報表主要包括三大報表,資產(chǎn)負(fù)債表、利潤表、現(xiàn)金流量表。這三大報表分析,也會以關(guān)注主要項為主,如果能全面分析是最好:

1.獲利能力分析:利潤的高低、利潤額的增長速度等。

2.償債能力分析:短期償債能力主要分析其變現(xiàn)能力即流動資產(chǎn)的分布、變動情況,確保投資的安全。具體從兩個方面進(jìn)行分析:長期償債能力主要分析財務(wù)報表中權(quán)益項目之間、權(quán)益與收益之間、權(quán)益與資產(chǎn)之間的關(guān)系。

3.經(jīng)營能力分析: 企業(yè)經(jīng)營能力分析的主要指標(biāo)是企業(yè)營運(yùn)資產(chǎn)的效率與效益,主要是分析資產(chǎn)的周轉(zhuǎn)率或周轉(zhuǎn)速度,如存貨、固定資產(chǎn)、應(yīng)收賬款等。

以上的各項分析,目前在各個股票軟件里面都有比較好的數(shù)據(jù)了,但是也是因為其通用性,造成了按照自己的對比和查看不那么方便,今天我給大家介紹的是如何利用python+tushane+pandas獲取三大報表的數(shù)據(jù),進(jìn)行個性化分析,這里我主要還是以介紹獲取數(shù)據(jù)為主,具體的分析還要靠各位自行努力。

步長制藥的財報數(shù)據(jù)(手機(jī)端)

利用python+tushare+pandas進(jìn)行財報分析

步長制藥自分析圖片

自己用數(shù)據(jù)進(jìn)行的分析(只選擇了一些項進(jìn)行對比,有了數(shù)據(jù)以后,大家可以自行選擇分析項)

利用python+tushare+pandas進(jìn)行財報分析

二、數(shù)據(jù)獲取

這些數(shù)據(jù)如何獲取,當(dāng)然有很多地方,可以下載財報,也可以自己輸入,但是這些都比較慢,我利用python+tushare+pandas只需要幾行代碼就可以快速的獲取,而且一旦寫好一次后,后續(xù)想獲取任意股票的數(shù)據(jù),就非常方便了,而且我是把四張報表合并了分析(增加了軟件里常用的財務(wù)主要指標(biāo)表),大家也可以簡單的,先分析一張報表。

以下是具體的代碼,我做了說明,實際用到的代碼非常少,真正有用的代碼不超過20行.

'''

Author:唐朝品鑒

Date:2020年5月24日

獲取指定公司的利潤表、資產(chǎn)負(fù)債表、現(xiàn)金流量表

'''

import pandas as pd

import tushare as ts

from time import sleep

'''

下面是參數(shù)說明:

ts_code 股票代碼

end_date 報告期

report_type 報表類型,1合并報表 2單季合并 3調(diào)整單季合并表 4調(diào)整合并報表 5調(diào)整前合并報表 6母公司報表 7母公司單季報 8 母公司調(diào)整單季表 9母公司調(diào)整表 10母公司調(diào)整前報表 11調(diào)整前合并報表 12母公司調(diào)整前報表

basic_eps 基本每股收益

diluted_eps 稀釋每股收益

total_revenue 營業(yè)總收入

sell_exp 銷售費(fèi)用

admin_exp 管理費(fèi)用

fin_exp 財務(wù)費(fèi)用

total_profit 利潤總額

income_tax 所得稅費(fèi)用

n_income 凈利潤(含少數(shù)股東損益)

'''

#這里是獲取數(shù)據(jù)前的定義,方便修改,重復(fù)利用

#注冊地址 https:///register?reg=365370

token='**這個需要大家去注冊一個tushare,免費(fèi)的,然后從后臺獲取**'

pro = ts.pro_api(token)

my_code='603858.SH'

fbegdate='20150101'

fenddate='20201231'

lrb_files='ts_code,end_date,report_type,basic_eps,diluted_eps,total_revenue,' \

'sell_exp,admin_exp,fin_exp,total_profit,income_tax,n_income'

zcfzb_files='ts_code,end_date,report_type,money_cap,notes_receiv,accounts_receiv,oth_receiv,inventories,total_cur_assets,' \

'cip,r_and_d,total_assets,total_cur_liab,total_liab,minority_int'

xjllb_files='ts_code,end_date,report_type,net_profit,finan_exp,c_fr_sale_sg,c_inf_fr_operate_a,c_paid_to_for_empl,' \

'st_cash_out_act,n_cashflow_act,n_cashflow_inv_act,n_cash_flows_fnc_act'

cwzb_files='ts_code,end_date,' \

'profit_dedt,gross_margin,inv_turn,ar_turn,ca_turn,fa_turn,assets_turn,fcff,' \

'ocfps,netprofit_margin,grossprofit_margin,cogs_of_sales,expense_of_sales,roe,' \

'roe_yearly,debt_to_assets,fixed_assets,rd_exp'

#下面是利用代碼,獲取網(wǎng)上數(shù)據(jù)

while True:

try:

#利潤表

lr_df = pro.income(ts_code=my_code, start_date=fbegdate, end_date=fenddate,fields=lrb_files)

sleep(2)

#資產(chǎn)負(fù)債表

zcfz_df = pro.balancesheet(ts_code=my_code, start_date=fbegdate, end_date=fenddate,fields=zcfzb_files)

sleep(2)

#現(xiàn)金流量表

xjll_df = pro.cashflow(ts_code=my_code, start_date=fbegdate, end_date=fenddate, fields=xjllb_files)

sleep(2)

#財務(wù)主要指標(biāo)表

cwzb_df = pro.fina_indicator(ts_code=my_code, start_date=fbegdate, end_date=fenddate,fields=cwzb_files)

sleep(2)

break

except Exception as e:

print(e)

continue

# 這里是利用年月日的時間生成,年、季度列;插入指定列,0表示第一列,即生成年度列和季度列

lr_df.insert(2, 'fyear',lr_df['end_date'].str[0:4])

lr_df.insert(3,'fperiod',lr_df['end_date'].str[4:6])

#利用drop_duplicates刪除重復(fù)行

nlr_df=lr_df.drop_duplicates(subset=['ts_code','end_date','report_type'], keep='first')

nzcfz_df=zcfz_df.drop_duplicates(subset=['ts_code','end_date','report_type'], keep='first')

nxjll_df=xjll_df.drop_duplicates(subset=['ts_code','end_date','report_type'], keep='first')

ncwzb_df=cwzb_df.drop_duplicates(subset=['ts_code','end_date'], keep='first')

hz_df1=pd.merge(nlr_df,nzcfz_df,on=['ts_code','end_date'])

hz_df2=pd.merge(hz_df1,nxjll_df,on=['ts_code','end_date'])

hz_df3=pd.merge(hz_df2,ncwzb_df,on=['ts_code','end_date'])

#以下是我用來重命名,改成中文的主要為了方便,所以有點長,其實可以省略的

def renname(df):

i = 0 # 用i的目的是區(qū)別,列名重復(fù)的問題,確保重命名后不重復(fù),為刪除列做好準(zhǔn)備

# 獲取列名

for column in df.iloc[:,:]:

# 用i的目的是區(qū)別,列名重復(fù)的問題,確保重命名后不重復(fù),為刪除列做好準(zhǔn)備

print(column)

i = i + 1

if column == 'ts_code':

newname = '股票代碼'

elif column == 'end_date':

newname='時間'

elif column== 'fyear':

newname='年度'

elif column == 'fperiod':

newname='月份'

elif column == 'report_type_x':

newname='利潤表類型'

elif column == 'basic_eps':

newname='基本每股收益'

elif column == 'diluted_eps':

newname='稀釋每股收益'

elif column == 'total_revenue':

newname='營業(yè)總收入'

elif column == 'sell_exp':

newname='銷售費(fèi)用'

elif column == 'admin_exp':

newname='管理費(fèi)用'

elif column == 'fin_exp':

newname='財務(wù)費(fèi)用'

elif column == 'total_profit':

newname='利潤總額'

elif column == 'income_tax':

newname='所得稅費(fèi)用'

elif column == 'n_income':

newname='凈利潤(含少數(shù)股東損益)'

elif column == 'report_type_y':

newname='資產(chǎn)負(fù)債表類型'

elif column == 'money_cap':

newname = '貨幣資金'

elif column == 'notes_receiv':

newname='應(yīng)收票據(jù)'

elif column == 'accounts_receiv':

newname='應(yīng)收賬款'

elif column == 'oth_receiv':

newname='其他應(yīng)收款'

elif column == 'inventories':

newname='存貨'

elif column == 'total_cur_assets':

newname='流動資產(chǎn)合計'

elif column == 'cip':

newname='在建工程'

elif column == 'r_and_d':

newname='研發(fā)支出'

elif column == 'total_assets':

newname='資產(chǎn)總計'

elif column == 'total_cur_liab':

newname='流動負(fù)債合計'

elif column == 'total_liab':

newname='負(fù)債合計'

elif column == 'minority_int':

newname='少數(shù)股東權(quán)益'

elif column == 'report_type':

newname='現(xiàn)金流量表類型'

elif column == 'net_profit':

newname='凈利潤'

elif column == 'finan_exp':

newname='(現(xiàn))財務(wù)費(fèi)用'

elif column == 'c_fr_sale_sg':

newname='銷售商品、提供勞務(wù)收到的現(xiàn)金'

elif column == 'c_inf_fr_operate_a':

newname='經(jīng)營活動現(xiàn)金流入小計'

elif column == 'c_paid_to_for_empl':

newname='支付給職工以及為職工支付的現(xiàn)金'

elif column == 'st_cash_out_act':

newname='經(jīng)營活動現(xiàn)金流出小計'

elif column == 'n_cashflow_act':

newname='經(jīng)營活動產(chǎn)生的現(xiàn)金流量凈額'

elif column == 'n_cashflow_inv_act':

newname='投資活動產(chǎn)生的現(xiàn)金流量凈額'

elif column == 'n_cash_flows_fnc_act':

newname='籌資活動產(chǎn)生的現(xiàn)金流量凈額'

elif column == 'profit_dedt':

newname='扣除非經(jīng)常性損益后的凈利潤'

elif column == 'gross_margin':

newname='毛利'

elif column == 'inv_turn':

newname='存貨周轉(zhuǎn)率'

elif column == 'ar_turn':

newname='應(yīng)收賬款周轉(zhuǎn)率'

elif column == 'ca_turn':

newname='流動資產(chǎn)周轉(zhuǎn)率'

elif column == 'fa_turn':

newname='固定資產(chǎn)周轉(zhuǎn)率'

elif column == 'assets_turn':

newname='總資產(chǎn)周轉(zhuǎn)率'

elif column == 'fcff':

newname='企業(yè)自由現(xiàn)金流量'

elif column == 'ocfps':

newname='每股經(jīng)營活動產(chǎn)生的現(xiàn)金流量凈額'

elif column == 'netprofit_margin':

newname='銷售凈利率'

elif column == 'grossprofit_margin':

newname='銷售毛利率'

elif column == 'cogs_of_sales':

newname='銷售成本率'

elif column == 'expense_of_sales':

newname='銷售期間費(fèi)用率'

elif column == 'roe':

newname='凈資產(chǎn)收益率'

elif column == 'roe_yearly':

newname='年化凈資產(chǎn)收益率'

elif column == 'debt_to_assets':

newname='資產(chǎn)負(fù)債率'

elif column == 'fixed_assets':

newname='固定資產(chǎn)合計'

elif column == 'rd_exp':

newname='研發(fā)費(fèi)用'

else:

newname=column

# df=df.drop([column],axis=1, inplace=True) #根據(jù)列名刪除該列

df.rename(columns={column: str(newname)}, inplace=True)

return df

#這里是調(diào)用了重命名函數(shù),也可以不用的

renname(hz_df3)

#把結(jié)果保存的excel,備用

hz_df3.to_excel('F:/python_analyze/%s_cbhz.xlsx'%my_code)

print('完成')

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多