一、 AKShare 简介

  • 定位:AKShare 是一个开源的 Python 库,专注于提供股票、基金、期货、期权、外汇等金融数据接口。

  • akshare官网:Welcome to AKShare's Online Documentation! — AKShare 1.16.61 文档

  • 特点:数据源丰富、接口简洁、支持主流数据格式(如 Pandas DataFrame)。

  • 适用场景:量化交易、数据分析、学术研究等。

二、安装与配置

安装 AKShare

pip install akshare --upgrade

依赖库安装

AKShare 依赖 pandasrequests 等库,若未自动安装,可手动安装。

三、A股-股票数据市场总貌

今日学习A股-股票数据市场总貌:AKShare 股票数据 — AKShare 1.16.61 文档

1、上海证券交易所

接口stock_sse_summary()

目标:单次返回最近交易日的股票数据总貌(当前交易日的数据需要交易所收盘后统计)。

输入参数:无需输入。

接口示例:

import akshare as ak

# 获取上交所每日概况数据
sse_summary = ak.stock_sse_summary()
print(sse_summary)

输出示例:

     项目         股票         主板       科创板
0   流通股本   47362.98   45701.69   1661.29
1    总市值  529247.16  461022.79  68224.38
2  平均市盈率      14.34      13.28     43.39
3   上市公司       2282       1696       586
4   上市股票       2321       1735       586
5   流通市值  501746.94  448912.27  52834.66
6   报告时间   20250325   20250325  20250325
8    总股本   49381.44   47143.27   2238.17

输出字段说明

名称 类型
项目 object
股票 object
科创板 object
主板 object

p:不太了解科创板与主板,然后在网上找了个图。

项目 说明
流通股本 当前市场上可自由交易的股票数量(单位:亿股)。
总市值 上市公司总股本 × 当前股价(单位:亿元)。
平均市盈率 总市值 ÷ 净利润(反映市场对公司的估值水平)。
上市公司 在该板块上市的公司总数(家)。
上市股票 上市的股票总数(含A股、B股、优先股等)。
流通市值 流通股本 × 当前股价(单位:亿元)。
总股本 公司已发行的全部股票数量(含限售股,单位:亿股)。

2、 深圳证券交易所

2.1 证券类别统计

接口: stock_szse_summary()

目标:单次返回指定 date 的市场总貌数据-证券类别统计(当前交易日的数据需要交易所收盘后统计)

输入参数:

名称 类型 描述
date str date="20200619"; 当前交易日的数据需要交易所收盘后统计

接口示例:

import akshare as ak

stock_szse_summary_df = ak.stock_szse_summary(date="20250325")
print(stock_szse_summary_df)

输出示例:

      证券类别     数量          成交金额           总市值          流通市值
0       股票   2899  7.423054e+11  3.466094e+13  2.947773e+13
1     主板A股   1485  3.948273e+11  2.133231e+13  1.928209e+13
2     主板B股     39  4.095880e+07  5.156409e+10  5.143089e+10
3    创业板A股   1375  3.474372e+11  1.327706e+13  1.014421e+13
4       基金    759  6.988440e+10  1.135153e+12  1.105820e+12
5      ETF    448  6.882649e+10  1.042062e+12  1.042062e+12
6      LOF    289  7.516009e+08  3.429957e+10  3.429957e+10
7    封闭式基金      1  1.243145e+06  1.680267e+09  1.680267e+09
8   基础设施基金     21  3.050584e+08  5.711153e+10  2.777805e+10
9       债券  15298  3.013875e+11           NaN           NaN
10    债券现券  14641  4.627866e+10  8.544444e+13  2.879673e+12
11    债券回购     27  2.535600e+11           NaN           NaN
12     ABS    630  1.548770e+09  4.351199e+11  4.351199e+11
13      期权    592  5.257660e+08           NaN           NaN

输出字段说明:

名称 类型 描述
证券类别 object -
数量 int64 注意单位: 只
成交金额 float64 注意单位: 元
总市值 float64 -
流通市值 float64 -
证券类别 说明
股票 包含所有A股(主板、创业板等)的汇总数据。
主板A股 上海/深圳主板上市的人民币普通股(面向境内投资者)。
主板B股 以美元(沪市)或港币(深市)交易的股票,面向境外投资者。
创业板A股 深圳创业板上市公司股票,定位为成长型创新企业。
基金 包含场内交易的所有基金产品(ETF、LOF等)。
ETF 交易所交易基金,跟踪指数或资产组合。
LOF 上市型开放式基金,可在交易所和场外申赎。
封闭式基金 基金份额固定,存续期内不可申购赎回。
基础设施基金 投资于基础设施项目的公募REITs(不动产投资信托基金)。
债券 场内交易的所有债券类别汇总(现券、回购、ABS等)。
债券现券 直接交易的债券(不含回购)。
债券回购 以债券为抵押的短期融资交易(如质押式回购)。
ABS 资产支持证券(Asset-Backed Securities)。
期权 场内交易的股票或指数期权(衍生品)。
数量 上市公司数量,例:主板A股上市公司数量 

2.2 地区交易排序

接口:stock_szse_area_summary

目标:单次返回指定 date 的市场总貌数据-地区交易排序数据

输入参数:

名称 类型 描述
date str date="202203"; 年月

接口示例:

import akshare as ak

stock_szse_area_summary_df = ak.stock_szse_area_summary(date="202502")
print(stock_szse_area_summary_df)

输出示例:

   序号   地区    总交易额     占市场  股票交易额      基金交易额      债券交易额
0    1    上海  8.705550e+12  16.099  5.525492e+12  6.459899e+11  2.534068e+12
1    2    深圳  6.737108e+12  12.458  4.435663e+12  4.514147e+11  1.850030e+12
2    3    浙江  4.951493e+12   9.156  4.112537e+12  1.511388e+11  6.878177e+11
3    4    北京  4.821783e+12   8.917  3.324484e+12  3.022807e+11  1.195018e+12
4    5    江苏  4.064272e+12   7.516  2.935962e+12  2.444186e+11  8.838912e+11
5    6  境外地区  2.164013e+12   4.002  2.144742e+12  1.927151e+10  0.000000e+00
6    7    广东  2.108859e+12   3.900  1.784651e+12  6.756662e+10  2.566416e+11
7    8    福建  2.106140e+12   3.895  1.516011e+12  8.694325e+10  5.031861e+11
8    9    广州  2.100100e+12   3.884  1.411336e+12  1.527892e+11  5.359747e+11
9   10    西藏  1.947719e+12   3.602  1.660716e+12  1.009596e+11  1.860431e+11
10  11    四川  1.767103e+12   3.268  1.349666e+12  5.617231e+10  3.612643e+11
11  12    湖北  1.581313e+12   2.924  1.084845e+12  4.635172e+10  4.501169e+11
12  13    山东  1.579490e+12   2.921  1.222253e+12  6.264690e+10  2.945894e+11
13  14    湖南  1.123438e+12   2.077  8.718440e+11  1.165786e+11  1.350149e+11
14  15    河南  8.795083e+11   1.626  7.223003e+11  2.458637e+10  1.326216e+11
15  16    江西  8.646282e+11   1.599  6.241084e+11  1.743504e+10  2.230847e+11
16  17    安徽  8.478590e+11   1.568  6.946397e+11  2.117054e+10  1.320488e+11
17  18    陕西  7.424512e+11   1.373  5.562897e+11  1.575464e+10  1.704069e+11
18  19    重庆  6.650989e+11   1.230  5.178340e+11  2.533346e+10  1.219315e+11
19  20    辽宁  6.506810e+11   1.203  5.164256e+11  1.756709e+10  1.166883e+11
20  21    河北  5.163202e+11   0.955  4.137602e+11  1.396717e+10  8.859281e+10
21  22    广西  4.431346e+11   0.819  3.259028e+11  1.061001e+10  1.066218e+11
22  23    山西  4.060970e+11   0.751  3.047903e+11  1.980266e+10  8.150406e+10
23  24    天津  3.916210e+11   0.724  3.023102e+11  1.499440e+10  7.431639e+10
24  25   黑龙江  2.958860e+11   0.547  2.336478e+11  1.035929e+10  5.187884e+10
25  26    吉林  2.789587e+11   0.516  1.916494e+11  1.049077e+10  7.681852e+10
26  27    贵州  2.727909e+11   0.504  1.492068e+11  1.164391e+10  1.119402e+11
27  28    云南  2.525119e+11   0.467  2.139688e+11  4.663529e+09  3.387951e+10
28  29    新疆  1.909437e+11   0.353  1.637895e+11  3.376295e+09  2.377790e+10
29  30    海南  1.628419e+11   0.301  1.400915e+11  4.868256e+09  1.788213e+10
30  31    甘肃  1.611008e+11   0.298  1.399655e+11  4.625294e+09  1.651000e+10
31  32   内蒙古  1.566178e+11   0.290  1.239134e+11  3.462498e+09  2.924184e+10
32  33    宁夏  9.940685e+10   0.184  8.633739e+10  3.528293e+09  9.541167e+09
33  34    青海  3.968739e+10   0.073  3.120010e+10  1.165394e+09  7.321893e+09

输出字段说明:

名称 类型 描述
序号 int64 -
地区 object -
总交易额 float64 注意单位: 元
占市场 float64 注意单位: %
股票交易额 float64 注意单位: 元
基金交易额 float64 注意单位: 元
债券交易额 float64 注意单位: 元

2.3 股票行业成交

接口:stock_szse_sector_summary

目标:单次返回指定 symbol 和 date 的统计资料-股票行业成交数据

输入参数:

名称 类型 描述
symbol str symbol="当月"; choice of {"当月", "当年"}
date str date="202501"; 年月

接口示例:

import akshare as ak

stock_szse_sector_summary_df = ak.stock_szse_sector_summary(symbol="当年", date="202501")
print(stock_szse_sector_summary_df)

输出示例:

项目名称                   项目名称-英文  交易天数       成交金额-人民币元  成交金额-占总计  \
0     合计                     Total    18  12797346256776    100.00   
1   农林牧渔               Agriculture    18     81959102700      0.64   
2    采矿业                    Mining    18     92263889071      0.72   
3    制造业             Manufacturing    18   8629767870655     67.43   
4   水电煤气                 Utilities    18     92119234528      0.72   
5    建筑业              Construction    18     79341083157      0.62   
6   批发零售        Wholesale & Retail    18    446585758971      3.49   
7   运输仓储            Transportation    18    101119645056      0.79   
8   住宿餐饮         Hotels & Catering    18     12977773203      0.10   
9   信息技术                        IT    18   1778343828765     13.90   
10   金融业                   Finance    18    556014586952      4.34   
11   房地产               Real Estate    18    130027421601      1.02   
12  商务服务          Business Support    18    403570860326      3.15   
13  科研服务    Research & Development    18    110626856303      0.86   
14  公共环保  Environmental Protection    18     82012479434      0.64   
15  居民服务         Resident Services    18      1380962740      0.01   
16    教育                 Education    18     32550128302      0.25   
17    卫生             Public Health    18     42095615991      0.33   
18  文化传播                     Media    18    107581655354      0.84   
19    综合             Conglomerates    18     17007503667      0.13   

          成交股数-股数  成交股数-占总计      成交笔数-笔  成交笔数-占总计  
0   1102116260223    100.00  1072706301    100.00  
1      9399492707      0.85     7661044      0.71  
2      9878192740      0.90     9355248      0.87  
3    658476162920     59.75   715973899     66.74  
4     16229887048      1.47    12802444      1.19  
5     15274277217      1.39    10222345      0.95  
6     52130678407      4.73    40706994      3.79  
7     10863950008      0.99    11426446      1.07  
8      2114778738      0.19     1728478      0.16  
9    129291809569     11.73   137478307     12.82  
10    41461501835      3.76    31633210      2.95  
11    31788728507      2.88    13878880      1.29  
12    71465288349      6.48    38310245      3.57  
13     6923026099      0.63    10972681      1.02  
14    17729676291      1.61    10919804      1.02  
15      148411858      0.01      217920      0.02  
16     7073096176      0.64     3040949      0.28  
17     5628801958      0.51     4706600      0.44  
18    14651178792      1.33    10017645      0.93  
19     1587321004      0.14     1653162      0.15  

输出字段说明:

名称 类型 描述
项目名称 object -
项目名称-英文 object -
交易天数 int64 -
成交金额-人民币元 int64
成交金额-占总计 float64 注意单位: %
成交股数-股数 int64 -
成交股数-占总计 float64 注意单位: %
成交笔数-笔 int64 -
成交笔数-占总计 float64 注意单位: %

3、上海证券交易所-每日概况

接口:stock_sse_deal_daily

目标:单次返回指定日期的每日概况数据, 当前交易日数据需要在收盘后获取; 注意仅支持获取在 20211227(包含)之后的数据。

输入参数:

名称 类型 描述
date str date="20250221"; 当前交易日的数据需要交易所收盘后统计; 注意仅支持获取在 20211227(包含)之后的数据

接口示例:

import akshare as ak

stock_sse_deal_daily_df = ak.stock_sse_deal_daily(date="20250325")
print(stock_sse_deal_daily_df)

输出示例:

  单日情况           股票          主板A       主板B         科创板  股票回购
0    挂牌数    2321.0000    1692.0000   43.0000    586.0000  0.00
1   市价总值  529247.1600  460028.1300  994.6600  68224.3800  0.00
2   流通市值  501746.9400  448176.3900  735.8900  52834.6600  0.00
3   成交金额    5168.8100    4300.2500    2.2800    866.2700  0.38
4    成交量     456.6500     432.4200    0.5400     23.6900  0.24
5  平均市盈率      14.3400      13.3000    7.5400     43.3900   NaN
6    换手率       0.9766       0.9348    0.2294      1.2697  0.00
7  流通换手率       1.0302       0.9595    0.3100      1.6396  0.00

输出字段说明:

名称 类型 描述
单日情况 object 包含了网页所有字段
股票 float64 -
主板A float64 -
主板B float64 -
科创板 float64 -
股票回购 float64 -
单日情况 说明
挂牌数 各板块上市公司的数量(单位:家)。
市价总值 所有上市公司总股本 × 当前股价(单位:亿元)。
流通市值 可自由交易的股票市值(单位:亿元)。
成交金额 当日该板块股票成交总额(单位:亿元)。
成交量 当日该板块股票成交总股数(单位:亿股)。
平均市盈率 总市值 ÷ 净利润(反映板块整体估值水平)。
换手率 成交量 ÷ 总股本(反映整体筹码交换频率,单位:%),也称‘周转率’。
流通换手率 成交量 ÷ 流通股本(更精准反映实际可交易部分的活跃度,单位:%)。

四、运用示例 

1、绘制上交所行业成交占比

import matplotlib.pyplot as plt
import akshare as ak

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']

# 获取数据(注意调整日期参数)
szse_industry = ak.stock_szse_sector_summary(symbol="当年", date="202301")[1:]# 日期改为有效年份

# 提取饼图数据
industry_names = szse_industry['项目名称']
trade_amount = szse_industry['成交金额-人民币元']

# 绘制饼图
plt.figure(figsize=(10, 8))
plt.pie(trade_amount, 
        labels=industry_names,
        autopct='%1.1f%%',
        startangle=90)
plt.title('深交所行业成交金额占比(2023年)')
plt.axis('equal')  # 保持圆形
plt.legend(industry_names, loc='best', bbox_to_anchor=(1, 0.5))
plt.show()

2、绘制地区总交易额前10渐变柱状图 

import matplotlib.pyplot as plt
import akshare as ak
import numpy as np

# 获取并处理数据
szse_area = ak.stock_szse_area_summary(date="202306").head(10)

# 创建可视化图表
plt.figure(figsize=(15, 8))
ax = szse_area.head(10).plot.bar(
    x="地区",
    y="总交易额",
    color=plt.cm.Blues_r(np.linspace(0.2, 1, 10)),  # 直接生成颜色数组
    edgecolor='black',
    linewidth=0.8,
    alpha=0.95,
    grid=True
)

# 设置图表标题和坐标轴
plt.title("深圳证券交易所地区交易额分布 Top10 (2023年二季度)", 
          fontsize=16, fontweight='bold', pad=20)
plt.xlabel("地区", fontsize=12, labelpad=12)
plt.ylabel("交易金额(亿元)", fontsize=12, labelpad=12)

# 格式化y轴刻度
ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x/1e8:.0f}'))

# 添加自定义数据标签
for i, v in enumerate(szse_area.head(10)["总交易额"]):
    ax.text(i, v * 0.92, f'{v/1e8:.2f}亿',  # 显示两位小数
            ha='center', va='top',
            color='white', 
            fontweight='semibold',
            fontsize=10)

# 优化视觉元素
ax.grid(True, linestyle=':', alpha=0.6, color='gray')
ax.spines[['top', 'right']].set_visible(False)
ax.tick_params(axis='both', which='major', labelsize=10.5)
plt.xticks(rotation=48, ha='right', fontsize=11)

norm = plt.Normalize(szse_area.head(10)["总交易额"].min(), szse_area.head(10)["总交易额"].max())
sm = plt.cm.ScalarMappable(norm=norm, cmap='Blues_r')
sm.set_array([])
plt.colorbar(sm, label='交易额等级', 
             orientation='vertical',
             shrink=0.8,
             aspect=20)

plt.tight_layout()
plt.show()

五、总结

1、接口概览

交易所 功能描述 输入参数 示例调用
上海证券交易所 股票数据总貌(最近交易日) ak.stock_sse_summary()
每日成交概况 date(格式:"YYYYMMDD" ak.stock_sse_deal_daily(date="20250221")
深圳证券交易所 证券类别统计(数量、市值等) date(格式:"YYYYMMDD" ak.stock_szse_summary(date="20200619")
地区交易排序(按总交易额) date(格式:"YYYYMM" ak.stock_szse_area_summary(date="202412")
股票行业成交数据(分当月/当年) symbol("当月"或"当年")
date(格式:"YYYYMM"
ak.stock_szse_sector_summary(symbol="当年", date="202501")

2、注意事项 

  1. 数据时效性

    • 实时数据需在交易所收盘后获取(如当日数据需等待统计完成)。

    • stock_sse_deal_daily 仅支持 2021年12月27日后的日期。

  2. 参数格式

    • 日期格式必须严格匹配:

      • 日级数据:"YYYYMMDD"(如 20250221

      • 月级数据:"YYYYMM"(如 202203)。

  3. 输出字段单位

    • 注意单位差异。

    • 百分比字段以小数形式显示(如 16.349% 显示为 16.349)。

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐