使用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()

饼图


关键注意事项

  1. 数据时效性

    • 接口数据每日更新,建议在交易日下午16:00后调用获取最新评级
    • 历史数据需结合stock_institute_recommend_detail接口补充
  2. 常见问题

    • 中文乱码:务必配置plt.rcParams字体参数(见3.2节代码)
    • 数据缺失:部分股票无机构评级,需用dropna()过滤
    • 接口限制:单次调用返回全部数据,避免高频请求(建议间隔>60秒)
  3. 扩展应用

    • 评级跟踪:结合历史数据计算评级上调/下调比例,捕捉预期变化
    • 行业对比:复用代码将indicator改为行业关注度,分析行业热度分布

完整代码依赖:akshare>=1.15.73, pandas, matplotlib。示例数据截至2025-07-17,实际运行以本地环境为准。本文仅作代码调用示例,与实际投资无关。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐