使用Tushare进行公司数据分析
生活随笔
收集整理的這篇文章主要介紹了
使用Tushare进行公司数据分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用Tushare進行公司數(shù)據(jù)分析
- 前言
- 代碼部分
- 導入接口
- 各種數(shù)據(jù)的獲取
- 完成表格
前言
Tusahre ID : 336660
Tushare能提供A股相關(guān)數(shù)據(jù),下面我們利用Tushare進行一些投資分析。我們這里使用投資人常用的幾個指標,總營業(yè)額,扣非凈利潤,ROE,負債比,現(xiàn)金流,毛利率。并且試圖把這些指標集中到一個表格當中,其中有些數(shù)據(jù)是需要自己計算的。這樣就能清晰直觀地看出公司的增長情況。
代碼部分
導入接口
// An highlighted block import pandas as pd import numpy as np import tushare as ts pro = ts.pro_api('************************')設(shè)定一些時間指標和設(shè)定股票代碼(三七互娛)
// An highlighted block string='002555.SZ' sdate='20130101' edate='20210730' this_year=2020 next_year_of_start_year=2014各種數(shù)據(jù)的獲取
// An highlighted block df = pro.balancesheet(ts_code=string,start_date=sdate,end_date=edate,period='20131231',fields='ann_date,report_type,total_liab,total_assets') for i in range(next_year_of_start_year,this_year):p=str(i)+'1231'df_next=pro.balancesheet(ts_code=string,start_date=sdate,end_date=edate,period=p,fields='ann_date,report_type,total_liab,total_assets')df=pd.concat([df,df_next]) # 總資產(chǎn) 總負債 try:df=df.drop([1]) except:pass ining=pro.income(ts_code=string,start_date=sdate,end_date=edate,period='20131231',fields='ann_date,report_type,total_revenue,revenue,total_cogs') for i in range(next_year_of_start_year,this_year):p=str(i)+'1231'ining_next=pro.income(ts_code=string,start_date=sdate,end_date=edate,period=p,fields='ann_date,report_type,total_revenue,revenue,total_cogs')ining=pd.concat([ining,ining_next])# 時間 類型 全營業(yè)額 營業(yè)額 全成本try:ining=ining.drop([1]) except:pass fina=pro.fina_indicator(ts_code=string,start_date=sdate,end_date=edate,period='20131231',fields='ann_date,profit_dedt,grossprofit_margin,roe') #時間 扣非 銷售毛利率 ROE for i in range(next_year_of_start_year,this_year):p=str(i)+'1231'fina_next=pro.fina_indicator(ts_code=string,start_date=sdate,end_date=edate,period=p,fields='ann_date,profit_dedt,grossprofit_margin,roe_waa')fina=pd.concat([fina,fina_next])try:fina=fina.drop([1]) except:pass cash= pro.cashflow(ts_code=string,start_date=sdate,end_date=edate,period='20131231',fields='ann_date,report_type,n_cashflow_act') for i in range(next_year_of_start_year,this_year):p=str(i)+'1231'cash_next=pro.cashflow(ts_code=string,start_date=sdate,end_date=edate,period=p,fields='ann_date,report_type,n_cashflow_act')cash=pd.concat([cash,cash_next])try:cash=cash.drop([1]) except:pass完成表格
n=7 data = pd.DataFrame({'Year':np.zeros(n),'Revenue':np.zeros(n),'Growth rate of revenue ':np.zeros(n),'profit_dedt':np.zeros(n),'Growth rate of profit_dedt':np.zeros(n),'Grossprofit_margin':np.zeros(n),'Cash':np.zeros(n),'Rate of Cash and profit_dedt':np.zeros(n),'Asset liability ratio':np.zeros(n),'ROE':np.zeros(n)}) Tushare提供的數(shù)據(jù)有時候有重復的部分,需要去掉。
cash['index']=range(0,n) cash=cash.set_index('index')ining['index']=range(0,n) ining=ining.set_index('index')df['index']=range(0,n) df=df.set_index('index')fina['index']=range(0,n) fina=fina.set_index('index') j=0 for i in range(next_year_of_start_year-1,this_year):data['Year'][j]=idata['Revenue'][j]=ining['total_revenue'][j]if j==0:passelse:data['Growth rate of revenue '][j]=(data['Revenue'][j]-data['Revenue'][j-1])/data['Revenue'][j-1]data['profit_dedt'][j]=fina['profit_dedt'][j]if j==0:passelse:data['Growth rate of profit_dedt'][j]=(data['profit_dedt'][j]-data['profit_dedt'][j-1])/data['profit_dedt'][j-1]data['Grossprofit_margin'][j]=fina['grossprofit_margin'][j]data['Cash'][j]=cash['n_cashflow_act'][j]data['Rate of Cash and profit_dedt'][j]=data['Cash'][j]/data['profit_dedt'][j]data['Asset liability ratio'][j]=df['total_liab'][j]/df['total_assets'][j]data['ROE'][j]=fina['roe_waa'][j]j=j+1 data總結(jié)
以上是生活随笔為你收集整理的使用Tushare进行公司数据分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spgridview的过滤功能回调时发生
- 下一篇: 账务管理系统