推广 热搜: 采购方式  甲带  滤芯  气动隔膜泵  减速机  减速机型号  履带  带式称重给煤机  链式给煤机  无级变速机 

申万行业数据分析平台上线啦!轻松获取各行业的关键数据,让行业研究更高效

   日期:2026-01-03 02:55:36     来源:网络整理    作者:本站编辑    评论:0    
申万行业数据分析平台上线啦!轻松获取各行业的关键数据,让行业研究更高效

一、项目背景

    随着中国资本市场不断发展壮大,投资者对于行业研究和数据分析的需求日益增长。申万行业分类作为国内公认的权威行业划分标准,为投资研究提供了重要参考依据。然而,传统的行业分析方法往往面临数据分散、处理复杂、可视化不足等挑战,普通投资者难以快速获取全面的行业洞察。为此,我们开发了这款申万行业数据分析平台,旨在整合多维度金融数据,通过科学的分析方法和直观的可视化展示,降低行业分析门槛,为投资者提供一站式的决策支持工具。
二、项目目标
    本项目旨在构建一个功能完整、操作便捷的申万行业数据分析系统,实现四大核心目标:第一,提供全面的行业指数分析功能,帮助用户把握行业整体发展趋势和波动特征;第二,实现行业内部个股的深入分析,揭示行业结构与成分股表现;第三,建立科学的财务综合评价体系,通过主成分分析等统计方法客观评估上市公司质量;第四,设计可靠的投资回测机制,验证分析结果的有效性和实用性。最终目标是打造一个集数据整合、智能分析、可视化展示和投资验证于一体的专业分析平台,为不同层级的用户提供从行业研究到投资决策的全流程支持。
三、整体架构与核心模块解读
    该系统实现了一个基于Streamlit的申万行业数据分析平台,主要功能包括行业指数分析、个股分析、财务综合评价和投资回测。系统通过整合多个数据源(行业指数数据、股票交易数据、财务数据、公司基本信息),为用户提供一站式的行业研究和投资分析工具。
    系统采用模块化设计,其功能模块流程如下图:
3.1数据加载与预处理
    该模块由st_data函数实现,主要完成以下任务:首先,从本地文件中读取四个数据源,包括行业指数交易数据、股票交易数据、财务数据和上市公司基本信息。然后,根据用户选择的行业名称筛选出对应的行业指数数据,并进行排序和列名重命名,以便后续处理。如果该行业的数据量超过600条,则进一步关联该行业内的上市公司,获取这些公司的交易数据和财务数据。最后,返回行业指数走势图、个股走势图、行业指数数据、财务数据、股票交易数据和公司基本信息。如果数据量不足600条,则给出警告并返回空值。
def st_data(nm, info):    # 读取相关数据    data = pd.read_csv('index_trdata.csv')    trdata = pd.read_csv('stk_trdata.csv')    findata = pd.read_csv('fin_data.csv')    co_data = pd.read_excel('上市公司基本信息.xlsx')    # 筛选指定行业的行业指数交易数据    data_i = data[data['name'] == nm].copy()    data_i = data_i.sort_values(['trade_date'])    data_i.columns = ['指数代码''行业名称''交易日期''开盘指数''收盘指数''成交量''市盈率''市净率']
3.2行业指数分析
    在行业指数分析部分,代码首先绘制行业收盘指数走势图。该图使用Matplotlib库,设置了合适的图形大小和标题,以折线图的形式展示行业收盘指数随时间的变化。为了优化显示效果,代码还根据数据点的数量智能设置x轴刻度,如果数据点超过600个,则选取固定间隔的刻度;否则,均匀选择6个左右的刻度。这样确保了时间标签的可读性。此外,该模块还计算了行业指数的基本统计指标,如当前收盘指数、期间收益率、平均成交量、平均市盈率和平均市净率,并在Streamlit页面上以指标卡的形式展示。
# 绘制行业收盘指数走势图plt.figure(figsize=(126))f1, ax = plt.subplots()ax.set_title(f'申万{nm}行业指数走势图', fontsize=16, fontweight='bold')x1 = data_i['交易日期'].valuesy1 = data_i['收盘指数'].valuesax.plot(range(len(x1)), y1, linewidth=2, color='#1f77b4')
    以2024年交通运输行业指数为例,如下图:
3.3财务综合评价(PCA分析)
    财务综合评价由Fr函数完成。该函数首先筛选出指定年份的财务数据,然后进行数据清洗,去除负值和空值,确保数据质量。接着,对清洗后的财务指标进行标准化处理,以消除量纲影响。随后,采用主成分分析(PCA)方法,保留95%的方差信息,提取主成分。最后,根据各主成分的贡献率加权计算每只股票的综合得分,并按照得分从高到低进行排序。该模块返回一个包含股票代码、股票简称和综合得分的DataFrame,为后续的投资回测提供股票排名。
def Fr(data, year):    # 筛选指定年份的数据    tdata = data[data['年度'] == year].copy()    # 空值和负值指标处理    data_x = tdata.iloc[:, 1:-1].copy()    data_x = data_x[data_x > 0]    data_x['股票代码'] = tdata['股票代码'].values    data_x = data_x.dropna()    # 标准化处理    X = data_x.iloc[:, :-1]    scaler = StandardScaler()    X_scaled = scaler.fit_transform(X)    # 主成分分析    pca = PCA(n_components=0.95)    Y = pca.fit_transform(X_scaled)    gxl = pca.explained_variance_ratio_    # 综合得分计算    F = Y[:, 0] * gxl[0]    for i in range(1, len(gxl)):        F += Y[:, i] * gxl[i]
    以下是2024年国防军工前十排名结果,如图所示:
3.4投资回测
    该模块由Tr函数实现。该函数接收财务综合评价模块输出的股票排名、年份和排名数量,选取前N名股票作为投资组合。然后,对于每只股票,使用tushare库获取其次年5月1日至12月31日的后复权价格数据,并计算持有期间的收益率。同时,获取同期沪深300指数的收益率作为基准。最后,计算投资组合的平均收益率,并与基准收益率进行比较。该模块返回组合平均收益率、基准收益率以及每只股票的详细收益率数据。其核心逻辑如下:
步骤
描述
关键参数
1
选择回测股票
综合得分前N名股票
2
设置回测期间
次年5月1日至12月31日
3
获取价格数据
使用后复权价格
4
计算收益率
(期末价格-期初价格)/期初价格
5
基准对比
沪深300同期收益率
3.5可视化展示
    可视化展示模块包含两个函数:create_return_visualizationcreate_ranking_visualization。前者用于创建收益率对比条形图,将每只股票的收益率以水平条形图展示,并在图中添加组合平均收益率和基准收益率的参考线。后者用于创建综合得分排名条形图,将股票按综合得分从高到低展示,并根据排名数量动态调整条形图的颜色、宽度和布局参数,以确保可视化效果清晰美观。效果展示分别如下图:
四、Streamlit界面设计
Streamlit界面由st_fig函数构建。该函数首先设置页面配置,包括页面标题和布局。然后,在侧边栏提供参数设置选项,包括行业选择、年度选择和排名数量选择。主内容区域根据用户选择的参数,依次展示原始数据、行业指数分析、个股分析、综合评价与投资回测结果。在展示过程中,使用了Streamlit的多种组件,如标签页、指标卡、展开器等,以增强用户交互体验。
4.1页面布局结构
def st_fig():    # 设置页面配置    st.set_page_config(        page_title="申万行业数据分析平台",        layout="wide",        initial_sidebar_state="expanded"    )    # 侧边栏参数设置    with st.sidebar:        st.markdown("## ? 参数设置")        nm = st.selectbox("选择申万一级行业", nm_L, key="industry_select")        year = st.selectbox("选择分析年度", [202420232022], key="year_select")        rank = st.selectbox("选择排名数量", [5101520], key="rank_select")
4.2数据展示与交互
# 原始数据展示st.markdown("## ? 原始数据")tab1, tab2, tab3, tab4 = st.tabs(["? 行业指数交易数据""? 财务数据""? 股票交易数据""? 公司基本信息"])
五、技术特色与创新点
5.1数据处理
该平台在数据处理方面实现了多项创新设计,通过智能数据筛选机制自动过滤数据量不足的行业,确保后续分析的统计显著性和可靠性;采用动态可视化技术,能够根据数据规模自动调整图表尺寸、刻度密度和颜色方案,实现最佳展示效果;在财务数据分析环节,系统在PCA分析前实施了严格的异常值处理流程,去除负值和缺失数据,显著提升了模型的稳定性和分析结果的准确性。这些数据处理创新共同构建了高质量数据分析的基础保障。
5.2分析方法
分析方法上实现重要突破,建立多维度综合评价体系,将传统财务指标与主成分分析技术有机结合,形成科学的股票排名方法;创新性地引入投资回测验证机制,将财务分析结果与实际市场表现相结合,通过历史数据验证分析方法的有效性;同时构建完善的基准对比分析框架,引入沪深300指数作为市场基准,精确计算超额收益率和投资胜率。这些方法创新使分析结果兼具理论严谨性和实践指导价值。
5.3用户体验优化
在用户体验设计方面,系统实现了高度响应式界面,用户调整任意参数后所有关联分析结果都能实时动态更新,形成流畅的交互体验;通过st.spinner组件提供明确的数据处理进度提示,避免用户在等待过程中产生不确定感;同时集成交互式可视化图表,支持鼠标悬停查看详细数据点信息,大幅提升了数据探索的便利性。这些优化措施共同打造了直观易用、反馈及时的专业分析体验。
六、数据流与处理逻辑
处理阶段
输入数据
处理过程
输出结果
数据准备
4个CSV/Excel文件
读取、合并、筛选
整合的数据集
行业分析
行业指数数据
时间序列分析、可视化
行业走势图、统计指标
个股分析
股票交易数据
筛选关联股票、价格分析
个股走势图
财务分析
财务指标数据
PCA分析、标准化、综合评分
股票排名列表
投资回测
股票排名、复权价格
收益率计算、基准对比
收益率图表、超额收益
七、潜在优化建议
针对未来版本的优化方向,本平台可在多个维度进行功能增强:数据源方面可引入实时数据更新机制,减少对静态文件的依赖,提升分析的时效性;分析方法上可扩展杜邦分析、财务健康度评分等多元模型,形成更全面的评估体系;回测策略可增加不同持有周期和调仓频率的选项,以适应多样化的投资风格;风险维度需引入波动率、最大回撤、夏普比率等风险调整后收益指标,完善风险评估框架;同时可开发多行业并行对比分析功能,支持跨行业的相对价值研究。这些改进将共同推动平台向更智能、更全面、更实用的专业分析工具演进。
八、总结
该系统实现了一个完整的行业数据分析平台,涵盖数据加载、预处理、可视化、财务综合评价和投资回测等多个环节。通过模块化设计,代码结构清晰,便于维护和扩展。同时,利用Streamlit库构建交互式Web应用,使得用户可以方便地进行参数设置和结果查看。该平台适用于行业研究、投资分析和教学演示等多种场景,具有较高的实用价值。
[效果展示]streamlit开发web可视化界面基于实训4改编而成效果展示如下。
已关注
关注
重播 分享
 
打赏
 
更多>同类资讯
0相关评论

推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  皖ICP备20008326号-18
Powered By DESTOON