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