标准的股票数据格式在深度学习使用时无法使用,因此需要进行数据转换。
(1)打开Spyder软件,在目录D:\zwPython\zwrk\1_Quant_TensorFlow,新建文件
18-StockDataEnhancedIndex.py
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 13 11:48:04 2025
Program Function:Stock Data Enhanced Index
@author: Administrator
"""
import sys, os
sys.path.append("topqt/")
import numpy as np
import pandas as pd
import tushare as ts
import math,arrow,ffn
import pypinyin
import numpy as np
import pandas as pd
import pandas_datareader as pdr
import matplotlib.pyplot as plt
import zsys
import ztools as zt
import ztools_str as zstr
import ztools_data as zdat
import ztools_draw2025 as zdr
import ztools_tq as ztq
import zpd_talib2025 as zta
#1
fss='inx/inx_code.csv'
df=pd.read_csv(fss,dtype={'code' : str},encoding='GBK')
print('\n#1,fss,',fss)
print('\ndf.tail')
print(df.tail())
#2
print('\n#2,data edit')
df2=pd.DataFrame()
for i, row in df.iterrows():
css=row['name']
ess=pypinyin.slug(css, style=pypinyin.FIRST_LETTER, separator='')
row['ename']=ess.upper()+'_'+row['code']
row['id']=int(i)
df2=df2.append(row)
#3
df2['id']=df2['id'].astype(int)
fss='tmp/xinx_name.csv'
print('\n#3,fss,',fss)
df2.to_csv(fss,index=False,encoding='GBK')
#
print('\ndf2.tail')
print(df2.tail())
(2)程序输出结果
runfile('D:/zwPython/zwrk/1_Quant_TensorFlow/18-StockDataEnhancedIndex.py', wdir='D:/zwPython/zwrk/1_Quant_TensorFlow')
d:\zwpython\py37\python-3.7.6.amd64\lib\site-packages\pandas_datareader\compat\__init__.py:7: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
from pandas.util.testing import assert_frame_equal
#1,fss, inx/inx_code.csv
df.tail
code name tim0
19 399106 深证综指 2000-01-01
20 399107 深证A指 2000-01-01
21 399108 深证B指 2000-01-01
22 399333 中小板R 2007-01-01
23 399606 创业板R 2011-01-01
#2,data edit
#3,fss, tmp/xinx_name.csv
df2.tail
code ename id name tim0
19 399106 SZZZ_399106 19 深证综指 2000-01-01
20 399107 SZAZ_399107 20 深证A指 2000-01-01
21 399108 SZBZ_399108 21 深证B指 2000-01-01
22 399333 ZXBR_399333 22 中小板R 2007-01-01
23 399606 CYBR_399606 23 创业板R 2011-01-01
(3)程序代码注释
# -*- coding: utf-8 -*-
# 这行代码指定了文件的编码格式为 UTF-8,确保代码文件可以正确处理包含中文等非 ASCII 字符的内容
"""
Created on Thu Feb 13 11:48:04 2025
Program Function:Stock Data Enhanced Index
@author: Administrator
"""
# 这是一个多行注释,包含了代码的创建时间、程序功能描述以及作者信息
# 创建时间为 2025 年 2 月 13 日星期四 11:48:04
# 程序功能是股票数据增强指数
# 作者为 Administrator
import sys, os
# 导入 sys 和 os 模块
# sys 模块提供了一些与 Python 解释器和系统相关的功能,例如操作 Python 解释器的路径等
# os 模块提供了与操作系统进行交互的功能,例如文件和目录操作等
sys.path.append("topqt/")
# 将 "topqt/" 目录添加到 Python 的模块搜索路径中
# 这样 Python 在导入模块时会搜索该目录,方便使用该目录下的自定义模块
import numpy as np
# 导入 numpy 库,并将其重命名为 np
# numpy 是一个用于科学计算的基础库,提供了高性能的多维数组对象和处理这些数组的工具
import pandas as pd
# 导入 pandas 库,并将其重命名为 pd
# pandas 是一个用于数据处理和分析的强大库,提供了 DataFrame 和 Series 等数据结构
import tushare as ts
# 导入 tushare 库
# tushare 是一个免费、开源的 python 财经数据接口包,可用于获取金融数据
import math,arrow,ffn
# 导入 math、arrow 和 ffn 库
# math 模块提供了数学运算相关的函数
# arrow 是一个用于处理日期和时间的库,提供了更加简洁和人性化的 API
# ffn 是一个用于金融数据分析的库,提供了一系列金融分析工具
import pypinyin
# 导入 pypinyin 库
# pypinyin 是一个用于将中文转换为拼音的库
import numpy as np
# 再次导入 numpy 库,这行代码是多余的,因为前面已经导入过了
import pandas as pd
# 再次导入 pandas 库,这行代码是多余的,因为前面已经导入过了
import pandas_datareader as pdr
# 导入 pandas_datareader 库,并将其重命名为 pdr
# pandas_datareader 是一个用于从各种在线数据源获取金融数据的库
import matplotlib.pyplot as plt
# 导入 matplotlib.pyplot 模块,并将其重命名为 plt
# matplotlib 是一个用于绘制图表的库,pyplot 是其提供的一个子模块,提供了类似于 MATLAB 的绘图接口
import zsys
# 导入自定义模块 zsys
# 可能是项目中自定义的与系统相关的工具模块
import ztools as zt
# 导入自定义模块 ztools,并将其重命名为 zt
# 可能是项目中自定义的通用工具模块
import ztools_str as zstr
# 导入自定义模块 ztools_str,并将其重命名为 zstr
# 可能是项目中自定义的字符串处理工具模块
import ztools_data as zdat
# 导入自定义模块 ztools_data,并将其重命名为 zdat
# 可能是项目中自定义的数据处理工具模块
import ztools_draw2025 as zdr
# 导入自定义模块 ztools_draw2025,并将其重命名为 zdr
# 可能是项目中自定义的绘图工具模块
import ztools_tq as ztq
# 导入自定义模块 ztools_tq,并将其重命名为 ztq
# 可能是项目中自定义的与 tushare 相关的工具模块
import zpd_talib2025 as zta
# 导入自定义模块 zpd_talib2025,并将其重命名为 zta
# 可能是项目中自定义的与 talib 相关的工具模块
#1
fss='inx/inx_code.csv'
# 定义一个变量 fss,存储要读取的 CSV 文件的路径
# 文件名为 inx_code.csv,位于 inx 目录下
df=pd.read_csv(fss,dtype={'code' : str},encoding='GBK')
# 使用 pandas 的 read_csv 函数读取指定路径的 CSV 文件
# dtype={'code' : str} 表示将 'code' 列的数据类型指定为字符串
# encoding='GBK' 表示文件的编码格式为 GBK
print('\n#1,fss,',fss)
# 打印换行符和 #1 标记,以及文件路径 fss
# 用于提示当前执行到步骤 1,并显示读取的文件路径
print('\ndf.tail')
# 打印换行符和 'df.tail' 提示信息
# 用于提示接下来将打印 DataFrame 的最后几行数据
print(df.tail())
# 打印 DataFrame df 的最后几行数据
# 方便查看读取的数据的基本情况
#2
print('\n#2,data edit')
# 打印换行符和 #2 标记,以及 'data edit' 提示信息
# 用于提示当前执行到步骤 2,开始进行数据编辑
df2=pd.DataFrame()
# 创建一个空的 DataFrame 对象 df2
# 用于存储处理后的数据
for i, row in df.iterrows():
# 遍历 DataFrame df 的每一行
# i 是行索引,row 是当前行的数据(Series 对象)
css=row['name']
# 从当前行中获取 'name' 列的值,并赋值给变量 css
# 假设 'name' 列存储的是中文名称
ess=pypinyin.slug(css, style=pypinyin.FIRST_LETTER, separator='')
# 使用 pypinyin 库的 slug 函数将中文名称 css 转换为拼音首字母
# style=pypinyin.FIRST_LETTER 表示只取拼音的首字母
# separator='' 表示拼音首字母之间不使用分隔符
row['ename']=ess.upper()+'_'+row['code']
# 在当前行中添加一个新的列 'ename'
# 该列的值为拼音首字母大写后加上下划线和 'code' 列的值
row['id']=int(i)
# 在当前行中添加一个新的列 'id'
# 该列的值为当前行的索引 i 转换为整数类型
df2=df2.append(row)
# 将处理后的当前行添加到 DataFrame df2 中
#3
df2['id']=df2['id'].astype(int)
# 将 DataFrame df2 中的 'id' 列的数据类型转换为整数类型
fss='tmp/xinx_name.csv'
# 定义一个变量 fss,存储要保存的 CSV 文件的路径
# 文件名为 xinx_name.csv,位于 tmp 目录下
print('\n#3,fss,',fss)
# 打印换行符和 #3 标记,以及文件路径 fss
# 用于提示当前执行到步骤 3,并显示保存的文件路径
df2.to_csv(fss,index=False,encoding='GBK')
# 使用 pandas 的 to_csv 函数将 DataFrame df2 保存为 CSV 文件
# index=False 表示不保存行索引
# encoding='GBK' 表示文件的编码格式为 GBK
#
print('\ndf2.tail')
# 打印换行符和 'df2.tail' 提示信息
# 用于提示接下来将打印 DataFrame df2 的最后几行数据
print(df2.tail())
# 打印 DataFrame df2 的最后几行数据
# 方便查看处理后的数据的基本情况
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/907156
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!