知识图谱的构建流程
1 数据获取
股票基本信息(股东信息、概念信息、公告信息),财经新闻信息,概念信息,股票价格的信息。
2 数据预处理
基本信息存在空值、股东信息存在重复数据、CSV的格式更改为utf-8格式。计算股票对数收益,保留股票价格交易日为242众数&计算皮尔逊相关系数
3 数据存储
明确实体和关系 使用py2neo交互neo4j创建节点和关系
4 数据可视化查询
cypher语言的数据可视化查询
5 相关的应用
中心度算法 社区检测算法 路径搜索算法 相似性算法 链接预测
对上述步骤详细解读 tushare的数据读取,来源于tushare,下面是注册地址, waditu.com/login 获取token的地址: tushare.pro/user/token
`import tushare as ts # 参考Tushare官网提供的安装方式
import csv
import time
import pandas as pd
# 以下pro_api token可能已过期,可自行前往申请或者使用免费版本
pro = ts.pro_api('your token')
1 股票的基本信息
stock_basic = pro.stock_basic(list_status='L', fields='ts_code, symbol, name, industry')
# 重命名行,便于后面导入neo4j
basic_rename = {'ts_code': 'TS代码', 'symbol': '股票代码', 'name': '股票名称', 'industry': '行业'}
stock_basic.rename(columns=basic_rename, inplace=True)
# 保存为stock_basic.csv
stock_basic.to_csv('financial_data\stock_basic.csv', encoding='gbk')
stock_basic.head()
2 股票的股东信息(top10)
holders = pd.DataFrame(columns=('ts_code', 'ann_date', 'end_date', 'holder_name', 'hold_amount', 'hold_ratio'))
# 获取一年内所有上市股票股东信息(可以获取一个报告期的)
for i in range(3610):
code = stock_basic['TS代码'].values[i]
holders = pro.top10_holders(ts_code=code, start_date='20180101', end_date='20181231')
holders = holders.append(holders)
if i % 600 == 0:
print(i)
time.sleep(0.4)# 数据接口限制
# 保存为stock_holders.csv
holders.to_csv('financial_data\stock_holders.csv', encoding='gbk')
holders = pro.holders(ts_code='000001.SZ', start_date='20180101', end_date='20181231')
3 股票的概念信息
concept_details = pd.DataFrame(columns=('id', 'concept_name', 'ts_code', 'name'))
for i in range(358):
id = 'TS' + str(i)
concept_detail = pro.concept_detail(id=id)
concept_details = concept_details.append(concept_detail)
time.sleep(0.4)
# 保存为concept_detail.csv
concept_details.to_csv('financial_data\stock_concept.csv', encoding='gbk')
4 股票公开信息
for i in range(3610):
code = stock_basic['TS代码'].values[i]
notices = pro.anns(ts_code=code, start_date='20180101', end_date='20181231', year='2018')
notices.to_csv("financial_data\notices\"+str(code)+".csv",encoding='utf_8_sig',index=False)
notices = pro.anns(ts_code='000001.SZ', start_date='20180101', end_date='20181231', year='2018')
` 未完待续