Python量化交易11——使用AKShare获取公司财务数据

AKshare库是一个很好用的金融数据获取的API,股票的数据很全面,还有很多别的数据:

 链接:AKShare 股票数据 — AKShare 1.10.85 文档

 他们获取来源都是东方财富网或者巨潮网等,都会写上的。

本次教大家怎么用AKshare获取资产负债表和利润表的数据:
 


代码实现

导入包:

import akshare as ak
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 
import seaborn as sns

plt.rcParams ['font.sans-serif'] ='SimHei'               #显示中文
plt.rcParams ['axes.unicode_minus']=False  

查看有哪些行业的数据:
 

 ak.stock_board_industry_name_em().板块名称.unique()

 这只是一个小样例,实际上AKshare有太多的接口了,数据很丰富,官网文档都说的很清楚的:

 想要什么数据都可以去官网找接口。我下面展示一些我自己用过的接口

例如获取水泥建材板块当天股票数据:

stock_board_industry_cons_em_df = ak.stock_board_industry_cons_em(symbol="水泥建材")
stock_board_industry_cons_em_df

 


利润表资产负债表获取

我时间定在2022年底,然后只选了三个股票

stock_lrb_em_df = ak.stock_lrb_em(date="20221231")
lrb=stock_lrb_em_df[stock_lrb_em_df['股票代码'].isin(['601668','601186','601800'])].drop('序号',axis=1).set_index('股票代码')

获取资产负债表:

stock_zcfz_em_df = ak.stock_zcfz_em(date="20221231")
zcfz=stock_zcfz_em_df[stock_zcfz_em_df['股票代码'].isin(['601668','601186','601800'])].drop('序号',axis=1).set_index('股票代码')

合并,展示:

financial_data=pd.concat([lrb,zcfz],axis=1)#.to_excel('财务数据.xlsx')
financial_data

 然后得到的数据可以计算你要的各种指标:
 

# Calculate financial ratio

financial_data['营业利润率'] = (financial_data['营业总收入'] - financial_data['营业总支出-营业支出']) / financial_data['营业总收入']
financial_data['资本收益率'] = financial_data['净利润'] / financial_data['股东权益合计']

# Select the relevant columns
financial_ratios = financial_data.reset_index()[['股票代码', '股票简称','营业利润率',  '资本收益率']]

financial_ratios

 简单画个图:
 

colors = ['b', 'g', 'r', 'c', 'm']
financial_ratios.set_index('股票简称').plot(kind='bar', figsize=(5, 5))
plt.title('公司的财务指标')
plt.tight_layout()
plt.savefig('1.png',dpi=128)
plt.show()

 


这是一个很简单的样例,批量获取你想要的资产负债表和利润表数据。然后计算一下画个图。

当然AKshare还有超级多的数据,我也没用过多少,需要自己去官网研究,要什么数据去找接口。这个库使用起来找数据会带给很多经济会计金融专业的学生便利吧。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python中,数据获取量化交易中必不可少的一步。以下是一些获取数据的方法: 1. tushare库:tushare是一个免费、开源、易于使用Python财经数据接口包,可以提供股票、基金、期货等市场数据,非常适合量化交易的数据获取。你可以使用pip安装: ``` pip install tushare ``` 然后按照如下代码获取股票数据: ```python import tushare as ts # 获取股票数据 df = ts.get_hist_data('600519', '2020-01-01', '2021-01-01') print(df) ``` 这里的参数'600519'表示茅台股票的代码,'2020-01-01'和'2021-01-01'分别表示开始日期和结束日期。 2. jqdatasdk库:jqdatasdk是一个免费的Python金融数据接口库,可以获取股票、基金、期货、外汇等市场数据。你可以使用pip安装: ``` pip install jqdatasdk ``` 然后按照如下代码获取股票数据: ```python import jqdatasdk # 登录聚宽账号(需要先注册) jqdatasdk.auth('username', 'password') # 获取股票数据 df = jqdatasdk.get_price('000001.XSHE', start_date='2020-01-01', end_date='2021-01-01', frequency='daily') print(df) ``` 这里的参数'000001.XSHE'表示平安银行股票的代码,'2020-01-01'和'2021-01-01'分别表示开始日期和结束日期。 3. akshare库:akshare是一个免费、开源的Python财经数据接口库,可以提供股票、基金、期货等市场数据。你可以使用pip安装: ``` pip install akshare ``` 然后按照如下代码获取股票数据: ```python import akshare as ak # 获取股票数据 df = ak.stock_zh_a_daily(symbol='sh600519', start_date='20200101', end_date='20210101') print(df) ``` 这里的参数'sh600519'表示茅台股票的代码,'20200101'和'20210101'分别表示开始日期和结束日期。 以上是几种获取股票数据的方法,你可以根据自己的需求选择其中一种。另外,对于其他市场的数据获取,也可以使用类似的方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阡之尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值