前言

申万行业数据分析系统是一个基于 Python 的行业与股票数据分析工具,集成了数据处理、可视化展示和财务绩效评估等功能。该系统利用 Streamlit 构建交互界面,通过 pandas 进行数据处理,matplotlib 实现数据可视化,并结合 sklearn 库进行主成分分析,为用户提供直观的行业与个股数据分析结果。
系统主要功能包括:
行业指数走势分析
行业内上市公司股价走势对比
基于财务数据的上市公司综合评价
股票收益率计算与市场基准对比

一、核心功能模块解析

  1. 数据加载与预处理模块(st_data 函数)

该函数是系统的数据处理核心,负责加载基础数据并进行初步处理和可视化。
在这里插入图片描述
该模块首先确保中文显示正常,然后加载四类核心数据文件。数据加载采用异常处理机制,当文件不存在时会向用户显示错误信息。随后对行业指数数据进行筛选、排序和列名规范化,并进行数据量检查,确保后续分析有足够的数据支撑。

  1. 数据可视化模块

可视化模块包含行业指数走势和个股走势两个主要图表:
在这里插入图片描述
在这里插入图片描述
可视化模块采用 matplotlib 绘制图表,通过合理设置图表大小、标题、坐标轴标签等增强可读性。对于 x 轴刻度,采用间隔采样的方式避免日期标签过于密集。个股走势图表采用 3×2 的子图布局,最多展示 6 只股票,并自动隐藏未使用的子图。

  1. 财务数据综合评价模块(Fr 函数)

该模块基于主成分分析 (PCA) 对上市公司财务数据进行综合评价:
在这里插入图片描述
该模块的核心流程为:
数据筛选:提取指定年份的财务数据
数据清洗:去除负值和空值,确保财务指标的有效性
标准化:采用 StandardScaler 进行数据标准化,消除量纲影响
主成分分析:使用 PCA 降维,保留 95% 的信息,减少指标间的多重共线性
综合评分:以主成分的方差贡献率为权重,计算综合得分并排序

  1. 收益率计算模块(Tr 函数)

收益率计算模块支持两种数据来源:Tushare 接口和本地数据,提高了系统的可用性:
在这里插入图片描述
该模块的设计亮点在于:
兼容性:当 Tushare 模块未安装或接口调用失败时,自动切换到本地数据
鲁棒性:通过异常处理机制确保系统稳定运行
基准对比:引入沪深 300 指数收益率作为市场基准,便于评估超额收益

  1. 界面模块(st_fig 函数)

界面模块使用 Streamlit 构建用户交互界面:
在这里插入图片描述
该模块设置了页面的基本属性,包括标题、图标、布局等,为后续添加交互控件(如行业选择器、年份选择器等)奠定基础。

二、界面展示

1.引入库

在这里插入图片描述

2.视频

申万行业数据分析系统

总结

系统特色与亮点
模块化设计:各功能模块职责清晰,便于维护和扩展
数据兼容性:支持 Tushare 接口和本地数据双重数据源,提高可用性
可视化友好:精心设计的图表布局和样式,提升数据可读性
健壮性保障:完善的异常处理和数据校验机制,确保系统稳定运行
分析深度:结合主成分分析等算法,提供超越简单描述统计的深度分析
该系统可帮助投资者、研究人员快速了解特定行业的整体表现和行业内上市公司的财务状况与市场表现,为投资决策提供数据支持。

Logo

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

更多推荐