广域资讯网
Article

打造你的专属新三板股票数据分析平台:告别低效查询,拥抱数据可视化

发布时间:2026-01-26 05:30:29 阅读量:6

.article-container { font-family: "Microsoft YaHei", sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 0 auto; }
.article-container h1

打造你的专属新三板股票数据分析平台:告别低效查询,拥抱数据可视化

摘要:还在为分散、难用的新三板数据查询工具头疼吗?本文将带你利用Python和现有数据源,构建一个更强大、更灵活的新三板股票数据分析系统。从数据获取、清洗、到可视化,一步步教你打造专属的数据洞察利器,让投资决策更加明智。更有Streamlit加持,让你的分析系统拥有友好的Web界面!

打造你的专属新三板股票数据分析平台:告别低效查询,拥抱数据可视化

1. 引言:新三板数据查询的痛点与现有解决方案的不足

作为一名新三板投资的业余爱好者,我经常需要查询各种股票数据,以便更好地进行投资决策。然而,我发现现有的新三板数据查询工具普遍存在一些问题:

  • 信息分散: 数据散落在不同的网站和平台,需要花费大量时间进行整理和汇总。
  • 界面不友好: 很多网站的界面设计过于复杂,操作起来非常繁琐。
  • 缺乏数据分析功能: 大部分工具只提供简单的查询功能,缺乏深入的数据分析和可视化能力。

例如,我想对比几家新三板公司的市盈率和成交量,需要手动从不同的网站复制数据,然后导入到Excel进行处理。这种方式效率低下,而且容易出错。

因此,我决定利用自己的技术能力,构建一个更强大、更灵活的新三板股票数据分析系统,解决这些痛点,并分享给更多有需要的投资者。

2. 数据源探索:从哪里获取新三板股票数据?

构建数据分析系统,首先需要解决数据来源问题。以下是一些可用的新三板股票数据源:

  • 全国中小企业股份转让系统官方网站: 这是最权威的数据来源,提供新三板官方数据,包括公司信息、交易数据等。虽然官方网站数据权威,但直接使用可能需要爬取,注意遵守相关法律法规,避免爬虫风险。
  • 东方财富、同花顺等财经网站: 这些网站提供新三板股票的行情数据、财务数据等。它们通常提供API接口,方便开发者获取数据。但需要注意,使用这些API可能需要付费或遵守其使用条款。
  • 第三方金融数据提供商: 例如 Wind、Choice 等,提供更全面、更专业的数据服务,但通常价格较高。可以关注是否有免费试用或优惠活动。

不同数据源的优缺点如下:

数据源 优点 缺点
全国中小企业股份转让系统官方网站 数据权威、准确 数据获取可能需要爬虫,难度较高
东方财富、同花顺等财经网站 提供API接口,方便获取数据;数据更新频率较高 可能需要付费或遵守其使用条款;数据完整性可能不如官方网站
第三方金融数据提供商 数据全面、专业;提供各种高级分析工具 价格较高

这里,我们以东方财富为例,演示如何使用 Python 的 requests 库获取新三板股票列表。

import requests
import json

url = 'http://np-list.eastmoney.com/EM_Finance_Content/js.aspx?type=EQ&cmd=C._A&sty=DCFFLTTAG&st=zsgj&sr=-1&p=1&ps=50&cb=callbackfun&token=4f18623af5e577c12615752b284db21c'

response = requests.get(url)

# 处理返回的数据,提取股票代码和名称 (需要根据实际返回的数据格式进行调整)
text = response.text
json_str = text[text.find('(') + 1: text.rfind(')')]
data = json.loads(json_str)

stock_list = []
for item in data['data']:
    stock_code = item.split(',')[1]
    stock_name = item.split(',')[2]
    stock_list.append({'code': stock_code, 'name': stock_name})

print(stock_list)

请注意: 上述代码仅为示例,实际使用时需要根据东方财富的API接口进行调整,并注意遵守其使用条款。同时,务必关注数据获取的合法性,避免爬虫风险。

3. 数据清洗与处理:让数据更易于分析

获取原始数据后,需要进行清洗和处理,才能使其更易于分析。pandas 库是 Python 中强大的数据处理工具,可以方便地进行数据清洗、转换和整合。

常见的数据清洗操作包括:

  • 处理缺失值: 使用 fillna() 方法填充缺失值,或使用 dropna() 方法删除包含缺失值的行或列。
  • 转换数据类型: 使用 astype() 方法将数据转换为正确的数据类型,例如将字符串转换为数值型。
  • 提取关键信息: 使用字符串操作或正则表达式提取需要的字段。
  • 数据去重: 使用 drop_duplicates() 方法删除重复数据。

以下代码示例展示如何使用 pandas 对新三板股票数据进行基本的数据清洗和转换操作。

import pandas as pd

# 假设我们从多个数据源获取了新三板股票数据,并将其存储在不同的 DataFrame 中
df1 = pd.DataFrame({'code': ['430000', '430001', '430002'], 'name': ['A公司', 'B公司', 'C公司'], 'price': [10.0, 12.0, None]})
df2 = pd.DataFrame({'code': ['430001', '430003'], 'volume': [1000, 2000]})

# 1. 合并数据
df = pd.merge(df1, df2, on='code', how='left')

# 2. 处理缺失值
df['price'] = df['price'].fillna(0)  # 将 price 列的缺失值填充为 0

# 3. 转换数据类型
df['volume'] = df['volume'].astype('Int64')  # 将 volume 列转换为整数类型

# 4. 提取股票代码的前两位作为行业代码
df['industry_code'] = df['code'].astype(str).str[:2]

print(df)

4. 数据可视化:让数据一目了然

数据可视化是数据分析的重要组成部分,可以将复杂的数据转化为直观的图表,帮助我们更好地理解数据,发现规律。

matplotlibseaborn 是 Python 中常用的数据可视化库,可以创建各种类型的图表,例如:

  • 成交量柱状图: 展示股票的交易活跃度。
  • 价格走势折线图: 展示股票的价格变化趋势。
  • 市盈率分布散点图: 展示不同股票的市盈率分布情况。
  • 箱线图: 用于展示数据的分布情况,可以观察中位数、四分位数、异常值等。

以下代码示例演示如何使用 matplotlib 创建一个简单的成交量柱状图,展示某只新三板股票的交易活跃度。

import matplotlib.pyplot as plt
import pandas as pd

# 假设我们有以下成交量数据
data = {'date': ['2026-01-01', '2026-01-02', '2026-01-03', '2026-01-04', '2026-01-05'],
        'volume': [100, 200, 150, 300, 250]}
df = pd.DataFrame(data)

# 创建柱状图
plt.figure(figsize=(10, 6))
plt.bar(df['date'], df['volume'])
plt.xlabel('Date')
plt.ylabel('Volume')
plt.title('Stock Trading Volume')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

5. 交互式查询系统:使用 Streamlit 构建 Web 界面

为了让数据分析系统更易于使用,我们可以使用 Streamlit 库快速构建一个简单的 Web 界面。Streamlit 允许我们使用 Python 代码创建交互式的 Web 应用,无需编写 HTML、CSS 或 JavaScript 代码。

以下代码示例展示如何使用 Streamlit 创建一个简单的搜索框,让用户可以根据股票代码或名称查询股票信息。

import streamlit as st
import pandas as pd

# 假设我们有以下股票数据
data = {'code': ['430000', '430001', '430002', '830000', '830001'],
        'name': ['A公司', 'B公司', 'C公司', 'D公司', 'E公司'],
        'industry': ['软件', '医药', '化工', '电子', '通信']}
df = pd.DataFrame(data)

# 创建搜索框
search_term = st.text_input('请输入股票代码或名称:')

# 根据搜索条件过滤数据
if search_term:
    search_term = search_term.lower()
    filtered_df = df[(df['code'].astype(str).str.lower().str.contains(search_term)) | (df['name'].str.lower().str.contains(search_term))]
else:
    filtered_df = df

# 显示搜索结果
st.dataframe(filtered_df)

运行上述代码,你将得到一个简单的 Web 界面,其中包含一个搜索框和一个数据表格。用户可以在搜索框中输入股票代码或名称,然后表格将显示匹配的股票信息。

Streamlit 还提供了许多其他组件,例如:

  • 筛选器: 允许用户根据行业、地区等条件筛选数据。
  • 图表: 可以在 Web 界面中显示各种图表。
  • 按钮: 可以触发某些操作,例如更新数据、导出数据等。

利用这些组件,我们可以构建一个功能更强大的交互式查询系统。

6. 进阶功能:探索更多可能性

除了上述基本功能外,我们还可以探索一些更高级的功能,例如:

  • 使用机器学习算法预测股票价格走势: 可以使用时间序列分析、神经网络等算法预测股票未来的价格走势。
  • 构建风险评估模型,评估新三板股票的投资风险: 可以使用财务指标、市场数据等构建风险评估模型,评估新三板股票的投资风险。
  • 对接券商API,实现自动交易: 可以对接券商的API,实现自动交易,例如根据预设的交易策略自动买入或卖出股票。

请注意: 这些功能的实现难度较高,需要具备一定的金融知识和编程经验。同时,投资有风险,请谨慎决策。

7. 总结与展望

本文介绍了如何利用 Python 和现有数据源,构建一个更强大、更灵活的新三板股票数据分析系统。通过数据获取、清洗、可视化和交互式查询,我们可以更好地理解新三板股票数据,并辅助投资决策。

未来,我们可以继续完善这个查询系统,例如:

  • 增加更多数据源: 可以整合更多的数据源,例如财务报表数据、研报数据等。
  • 优化数据分析算法: 可以使用更先进的数据分析算法,提高数据分析的准确性和效率。
  • 改进用户界面: 可以设计更美观、更易于使用的用户界面。

我希望这个开源项目能够帮助更多的新三板投资者,并推动新三板数据分析的发展。欢迎大家参与到项目中来,共同完善这个查询系统。

GitHub 仓库地址: (此处填写你的 GitHub 仓库地址)

希望 2026 年的新三板市场更加透明,数据更加易于获取和分析,帮助更多投资者做出明智的决策。可以关注新三板信息披露平台,获取最新信息。

参考来源: