首页 基本面分析指标自动获取程序
文章
取消

基本面分析指标自动获取程序

程序目的

快速获取上市公司多年报表数据,用于企业分析初步筛选

程序下载链接

下载链接: https://pan.baidu.com/s/1xVukyB12ZYIxTF2eSp0oLg 提取码: zpz8

程序运行条件

须按使用说明操作步骤,在聚宽网站上调用使用,不支持离线(主要弄离线版有调用次数限制,大家一起用的话免费版撑不住) 试了几个网站,聚宽还算数据比较全的,暂时使用聚宽,后续有必要再换到其他同类网站。

小白操作步骤

  1. 注册聚宽免费账号。网址:www.joinquant.com
  2. 进入菜单 “策略研究”->”研究环境” 研究环境
  3. 点击上传,上传附件文件(企业基本分析0721_2.ipynb) 上传
  4. 点击进入上传的文件
  5. 修改需要查询数据的股票代码。格式:沪市6xxxx.XSHG,深市0xxxx.XSHE 选择股票 可按需要修改年报年份 选择年份 可修改需要显示的指标数据 修改指标
  6. 点击“运行”按钮获得结果数据 结果

附:源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
#股票代码,需要其他公司可修改这里。格式:沪市6xxxx.XSHG,深市0xxxx.XSHE
code= '603606.XSHG'

import pandas as pd

years= ['2020','2019','2018','2017','2016','2015']

#转化单位为亿
toBillion = 100000000

#定义字典
balanceDict={}
cash_flowDict={}
incomeDict={}
indicatorDict={}
balanceCompareDict={}
cash_flowCompareDict={}
incomeCompareDict={}
indicatorCompareDict={}

#定义输出
myReport=pd.DataFrame()

#资产负载
balanceQ = query(
      balance
  ).filter(
      balance.code == code
  )

#现金流量
cash_flowQ = query(
      cash_flow
  ).filter(
      cash_flow.code == code
  )

#利润    
incomeQ = query(
      income
  ).filter(
      income.code == code
  )

#财务指标    
indicatorQ = query(
      indicator
  ).filter(
      indicator.code == code
  )

#营业收入(亿)
operating_revenue = []
#营业收入同比
operating_revenueCompare = []
#应收账款及票据(亿)
account_receivable = []
#应收账票占收入比
account_receivale_margin=[]
#销售毛利率
gross_profit_margin = []
#扣非净利润
adjusted_profit = []
#扣非净利润增速
adjusted_profit_compare = []
#销售净利率
net_profit_margin = []
#归母股东净利润(亿)
np_parent_company_owners = []
#归母股东净利润增速
np_parent_company_ownersCompare = []
#营业成本(营业成本,也称运营成本)(亿)
operating_cost = []
#销售、管理、财务费用总占比
all_expense_margin=[]
#销售费用占比
sale_expense_margin = []
#管理成本占比
administration_expense_margin = []
#财务费用占比
financial_expense_margin = []

#货币占总资产比
cash_total_assets_margin = []

#资产负债率
assets_liability = []
#短期借款
shortterm_loan=[]
#长期借款
longterm_loan = []
#固定资产+在建工程占比
constru_in_process_margin = []
#存货/留到资产
inventories_margin = []
#总资产增长率
total_assetsCompare_margin = []

#归母股东权益
equities_parent_company_owners = []
#少数股东权益
minority_interests =[]
#股东权益合计
total_owner_equities = []
#股东权益占总资产比
total_owner_total_assets_margin =[]

#存货周转率
inventories_turnover_margin = []

#经营活动产生的现金流量净额
net_operate_cash_flow = []
#经营活动产生的现金流量净额占营收比
ocf_to_revenue = []
#经营活动产生的现金流量净额/经营活动净收益
ocf_to_operating_profit = []
#净利润含金量 经营活动产生的现金流量净额/扣非净利润
net_cash_flow_ad_profit = []


#roe
roe = []
#roa
roa = []

for y in years:
    #获取每年的4张表
    balanceDict[y]=get_fundamentals(balanceQ, statDate=int(y))
    cash_flowDict[y]=get_fundamentals(cash_flowQ, statDate=int(y))
    incomeDict[y]=get_fundamentals(incomeQ, statDate=int(y))
    indicatorDict[y]=get_fundamentals(indicatorQ, statDate=int(y))
    
    balanceCompareDict[y]=get_fundamentals(balanceQ, statDate=int(y)-1)
    cash_flowCompareDict[y]=get_fundamentals(cash_flowQ, statDate=int(y)-1)
    incomeCompareDict[y]=get_fundamentals(incomeQ, statDate=int(y)-1)
    indicatorCompareDict[y]=get_fundamentals(indicatorQ, statDate=int(y)-1)
    
    
    #营业收入(亿)
    revenue=round(incomeDict[y]['operating_revenue'][0]/toBillion,2)
    operating_revenue.append(revenue)
    #营业收入同比
    revenuCompare = round(incomeCompareDict[y]['operating_revenue'][0]/toBillion,2)
    compare= (float(revenue) - float(revenuCompare))/float(revenuCompare)
    operating_revenueCompare.append(str(round(compare*100,2))+'%')
    #应收账款(亿)
    receivalbe=round(balanceDict[y]['account_receivable'][0]/toBillion,2)
    +round(balanceDict[y]['bill_receivable'][0]/toBillion,2)
    account_receivable.append(receivalbe)
    #应收账款占收入比
    account_receivale_margin.append(str(round(receivalbe/revenue*100,2))+'%')
    #销售毛利率
    gross_profit_margin.append(str(round(indicatorDict[y]['gross_profit_margin'][0],2))+'%')
    #销售净利率
    net_profit_margin.append(str(round(indicatorDict[y]['net_profit_margin'][0],2))+'%')
    #归母股东净利润(亿)
    np_parent = round(incomeDict[y]['np_parent_company_owners'][0]/toBillion,2)
    np_parent_company_owners.append(np_parent)
    #归母净利润增速
    np_parentCompare = round(incomeCompareDict[y]['np_parent_company_owners'][0]/toBillion,2)
    compare= (float(np_parent) - float(np_parentCompare))/float(np_parentCompare)
    np_parent_company_ownersCompare.append(str(round(compare*100,2))+'%')
    #扣非净利润
    ad_profit = round(indicatorDict[y]['adjusted_profit'][0]/toBillion,2)
    adjusted_profit.append(ad_profit)
    #扣非净利润增速
    adjusted_profitCompare = round(indicatorCompareDict[y]['adjusted_profit'][0]/toBillion,2)
    compare= (float(ad_profit) - float(adjusted_profitCompare))/float(adjusted_profitCompare)
    adjusted_profit_compare.append(str(round(compare*100,2))+'%')
    
    
    #营业成本(营业成本,也称运营成本)(亿)
    all_cost = round(incomeDict[y]['operating_cost'][0]/toBillion,2)
    operating_cost.append(all_cost)
    #销售费用(亿)
    sale_expense = round(incomeDict[y]['sale_expense'][0]/toBillion,2)
    #管理成本(亿)
    administration_expense = round(incomeDict[y]['administration_expense'][0]/toBillion,2)
    #财务费用(亿)
    financial_expense = round(incomeDict[y]['financial_expense'][0]/toBillion,2)
    #费用合计
    all_expense = sale_expense + administration_expense + financial_expense
    #费用占成本比
    all_expense_margin.append(str(round(all_expense/all_cost*100,2))+'%')
    #销售费用占比
    sale_expense_margin.append(str(round(sale_expense/all_cost*100,2))+'%')
    #管理费用占比
    administration_expense_margin.append(str(round(administration_expense/all_cost*100,2))+'%')
    #财务费用占比
    financial_expense_margin.append(str(round(financial_expense/all_cost*100,2))+'%')

    
    #资产合计(亿)
    total_assets = round(balanceDict[y]['total_assets'][0]/toBillion,2)
    #固定资产(亿)
    fixed_assets = round(balanceDict[y]['fixed_assets'][0]/toBillion,2)
    #在建工程(亿)
    constru_in_process = round(balanceDict[y]['constru_in_process'][0]/toBillion,2)
    #固定资产+在建工程占总资产比
    constru_in_process_margin.append(str(round((fixed_assets+constru_in_process)/total_assets*100,2))+'%')
    #货币占总资产比
    cash_equivalents= round(balanceDict[y]['cash_equivalents'][0]/toBillion,2)
    cash_total_assets_margin.append(str(round(cash_equivalents/total_assets*100,2))+'%')
    
     #总资产增长率
    total_assetsCompare = round(balanceCompareDict[y]['total_assets'][0]/toBillion,2)
    compare= (float(total_assets) - float(total_assetsCompare))/float(total_assetsCompare)
    total_assetsCompare_margin.append(str(round(compare*100,2))+'%')
    
    #存货(亿)
    inventories = round(balanceDict[y]['inventories'][0]/toBillion,2)
    #流动资产合计(亿)
    total_current_assets = round(balanceDict[y]['total_current_assets'][0]/toBillion,2)
    #存货与流动资产比
    inventories_margin.append(str(round(inventories/total_current_assets*100,2))+'%')
    #存货周转率
    inventories_turnover_margin.append(round(all_cost/inventories,2))
    
    #负债合计(亿)
    total_liability = round(balanceDict[y]['total_liability'][0]/toBillion,2)
    #资产负债率
    assets_liability.append(str(round(total_liability/total_assets*100,2))+'%')
    #短期借款
    shortterm_loan.append(round(balanceDict[y]['shortterm_loan'][0]/toBillion,2))
    #长期借款
    longterm_loan.append(round(balanceDict[y]['longterm_loan'][0]/toBillion,2))
    
    #归母股东权益
    equities_parent_company_owners.append(round(balanceDict[y]['equities_parent_company_owners'][0]/toBillion,2))
    #少数股东权益
    minority_interests.append(round(balanceDict[y]['minority_interests'][0]/toBillion,2))
    #股东权益合计
    total_owner = round(balanceDict[y]['total_owner_equities'][0]/toBillion,2)
    total_owner_equities.append(total_owner)
    #股东权益占总资产比
    total_owner_total_assets_margin.append(str(round(total_owner/total_assets*100,2))+'%')
    
    #roe
    roe.append(str(round(indicatorDict[y]['roe'][0],2))+'%')
    #roa
    roa.append(str(round(indicatorDict[y]['roa'][0],2))+'%')
    
    #经营活动产生的现金流量净额
    net_cash = round(cash_flowDict[y]['net_operate_cash_flow'][0]/toBillion,2)
    net_operate_cash_flow.append(net_cash)
    #经营活动产生的现金流量净额占营收比
    ocf_to_revenue.append(str(round(indicatorDict[y]['ocf_to_revenue'][0],2))+'%')
    #经营活动产生的现金流量净额/经营活动净收益
    ocf_to_operating_profit.append(str(round(indicatorDict[y]['ocf_to_operating_profit'][0],2))+'%')
    #净利润含金量 经营活动产生的现金流量净额/扣非净利润
    net_cash_flow_ad_profit.append(str(round(net_cash/ad_profit*100,2))+'%')

myReport = pd.DataFrame({'(亿)':years, 
                         'ROE':roe,
                         'ROA':roa,
                         '销售毛利率':gross_profit_margin,
                         '销售净利率': net_profit_margin,
                          '营业收入' :operating_revenue,
                         '营收同比':operating_revenueCompare,
                         '扣非净利润':adjusted_profit,
                         '扣非净利润增速':adjusted_profit_compare,
                         '经营活动产生的现金流量净额': net_operate_cash_flow,
                         '净利润含金量':net_cash_flow_ad_profit,
                         '资产负债率':assets_liability, 
                         '短期借款': shortterm_loan,
                         '长期借款': longterm_loan,
                         '股东权益占总资产比':total_owner_total_assets_margin,
                         '固定资产+在建工程占总资产比':constru_in_process_margin,
                         '货币资金占总资产比':cash_total_assets_margin,
                         '应收账票占收入比':account_receivale_margin,
                        '三项费用总占成本比':all_expense_margin,
                        '销售费用占比':sale_expense_margin,
                        '管理费用占比':administration_expense_margin,
                        '财务费用占比':financial_expense_margin,
                        '存货/流动资产 比':inventories_margin,
                        '存货周转率(次)':inventories_turnover_margin
                        })
myReport.T 
本文由作者按照 CC BY 4.0 进行授权

Personal Website 快速搭建

把信息交给未来的自己——构建你的第二大脑