文章目录
使用akshare获取机构推荐池数据
1. 机构推荐池接口stock_institute_recommend
简介
功能描述
该接口用于获取新浪财经的机构推荐池数据,涵盖最新投资评级、目标价、行业分类等关键指标。数据来源为专业金融机构(券商、基金等)发布的股票评级报告,反映市场主流机构对个股的价值判断。
核心参数
参数名 | 必选 | 说明 |
---|---|---|
symbol | 是 | 数据类别,可选值包括:最新投资评级 、目标涨幅排名 、行业关注度 等9类 |
输出字段
- 股票代码、股票名称、最新评级(如“买入”、“增持”)、目标价、评级日期、行业
- 辅助指标:综合评级、平均涨幅(反映机构预期收益)
数据价值
- 投资信号:识别机构集中推荐的股票,捕捉市场共识
- 行业分析:通过
行业关注度
指标挖掘资金偏好行业
2. 调用接口获取机构推荐池数据
步骤与代码示例
import akshare as ak
import pandas as pd
# 获取“最新投资评级”数据
df_recommend = ak.stock_institute_recommend(symbol="最新投资评级")
# 数据清洗:过滤无效值 & 按评级日期排序
df_clean = df_recommend.dropna(subset=["最新评级"])
df_clean["评级日期"] = pd.to_datetime(df_clean["评级日期"])
df_sorted = df_clean.sort_values("评级日期", ascending=False)
# df_sorted = df_recommend.sort_values("评级日期", ascending=False)
# 查看最新5条记录
print(df_sorted[["股票代码", "股票名称", "最新评级", "评级日期"]].head())
股票代码 股票名称 最新评级 评级日期
0 600000 浦发银行 买入 2025-07-17
181 600312 平高电气 增持 2025-07-17
153 688160 步科股份 增持 2025-07-17
154 603071 物产环能 买入 2025-07-17
155 688136 科兴制药 买入 2025-07-17
3. 评级分布统计与饼图可视化
3.1 统计各评级类别数量
# 按评级类型分组计数
rating_counts = df_sorted["最新评级"].value_counts()
print(rating_counts)
最新评级
买入 5756
增持 1252
中性 54
Name: count, dtype: int64
3.2 使用Matplotlib绘制饼图
import matplotlib.pyplot as plt
# 设置中文显示(解决标签乱码)
plt.rcParams["font.sans-serif"] = ["SimHei"] # 中文字体
plt.rcParams["axes.unicode_minus"] = False # 修复负号显示
# 饼图参数配置
labels = rating_counts.index.tolist()
sizes = rating_counts.values
explode = (0.1, 0, 0) # 突出显示"买入"类别
colors = ["#FF9999", "#66B3FF", "#99FF99", "#FFCC99"]
# 绘制饼图
fig, ax = plt.subplots(figsize=(10, 6))
ax.pie(
sizes,
explode=explode,
labels=labels,
colors=colors,
autopct="%1.1f%%", # 显示百分比
# autopct=lambda p: f'{p:.1f}%', # 显示百分比
shadow=True, # 添加阴影
startangle=90 # 起始角度
)
# 添加标题与图例
ax.set_title("机构推荐池股票评级分布", fontsize=14)
ax.legend(
labels,
title="评级类型",
loc="center left",
bbox_to_anchor=(1, 0.5)
)
# 标注总数
plt.text(-1.5, -1.2, f"总股票数: {len(df_sorted)}", fontsize=12)
plt.tight_layout()
plt.savefig("rating_pie.png", dpi=300)
plt.show()
关键注意事项
-
数据时效性
- 接口数据每日更新,建议在交易日下午16:00后调用获取最新评级
- 历史数据需结合
stock_institute_recommend_detail
接口补充
-
常见问题
- 中文乱码:务必配置
plt.rcParams
字体参数(见3.2节代码) - 数据缺失:部分股票无机构评级,需用
dropna()
过滤 - 接口限制:单次调用返回全部数据,避免高频请求(建议间隔>60秒)
- 中文乱码:务必配置
-
扩展应用
- 评级跟踪:结合历史数据计算评级上调/下调比例,捕捉预期变化
- 行业对比:复用代码将
indicator
改为行业关注度
,分析行业热度分布
完整代码依赖:
akshare>=1.15.73
,pandas
,matplotlib
。示例数据截至2025-07-17,实际运行以本地环境为准。本文仅作代码调用示例,与实际投资无关。