【PY从0到1】 金融数据处理1
# tushare ID: 409200 # 【PY从0到1】 金融数据处理1 # 导入库 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import warnings; warnings.simplefilter('ignore') #设置美化参数 sns.set() # 1> 获取数据 # ① 从本地获取数据。 # 这里用pd内置方法读取文件。 date = pd.read_csv('d://399300.csv') # 括号内为文件的路径。 print(date.head()) # Unnamed: 0 ts_code trade_date ... low open high # 0 0 399300.SZ 20210201 ... 5342.0458 5356.8535 5422.2990 # 1 1 399300.SZ 20210129 ... 5288.0955 5413.9684 5430.2015 # 2 2 399300.SZ 20210128 ... 5360.3766 5450.3695 5462.2352 # 3 3 399300.SZ 20210127 ... 5449.6385 5505.7708 5534.9928 # 4 4 399300.SZ 20210126 ... 5505.9962 5600.9017 5600.9017 # 保存文件。 date.to_csv('d://333333.csv') # ② 从网络获取数据。 # 只介绍一种从tushare获取行情数据。 # 导入库 import tushare as ts # 本案例使用tushare pro 接口 # pro = ts.pro_api('') # 这里是个人接口token.详见tushare官网:waditu.com/ # df = pro.index_daily(ts_code='399300.SZ', # start_date='20180101', # end_date='20181010') # 上述代码就获取了沪深300指数从18年1月1日到18年10月1日的日线数据。 # tushare能获得很多数据,具体也请读者进入官网了解,这里就不过多举例了。 # 下面对获得的数据进行简单的处理。 hs300 = date # 重命名 hs300.set_index('trade_date', inplace=True) # 设置新索引 del hs300['Unnamed: 0'] # 删除无用列 hs300.info() # 查看DataFrame统计内容。 # 2> 金融数据数据可视化 # 数据获取、整理 stock_data1 = pro.daily(ts_code='600036.SH', start_date='20191201', end_date='20201201') # 获取股票数据 stock_data1.index = pd.to_datetime(stock_data1['trade_date']) # 日期作为时间索引 stock_data1.rename(columns={'trade_date': 'date', 'ts_code':'code', 'vol':'volume'}, inplace=True) # 修改标签 stock_data1 = stock_data1[['open','close','high','low','volume','code']] # 过滤无用数据 stock_data2 = pro.daily(ts_code='600660.SH', start_date='20191201', end_date='20201201') # 获取股票数据 stock_data2.index = pd.to_datetime(stock_data2['trade_date']) # 日期作为时间索引 stock_data2.rename(columns={'trade_date': 'date', 'ts_code':'code', 'vol':'volume'}, inplace=True) # 修改标签 stock_data2 = stock_data2[['open','close','high','low','volume','code']] # 过滤无用数据 stock_data3 = pro.daily(ts_code='002594.SZ', start_date='20191201', end_date='20201201') # 获取股票数据 stock_data3.index = pd.to_datetime(stock_data3['trade_date']) # 日期作为时间索引 stock_data3.rename(columns={'trade_date': 'date', 'ts_code':'code', 'vol':'volume'}, inplace=True) # 修改标签 stock_data3 = stock_data3[['open','close','high','low','volume','code']] # 过滤无用数据 # 合并数据 stock_data = pd.concat([stock_data1, stock_data2, stock_data3], keys=['600036.SZ','600660.SZ','002594.SH'], names=['code', 'date']) # 获得关键元素、重新整理DataFrame stock_data_close = stock_data[['close']].reset_index() # 重置索引 stock_data_close = stock_data_close.pivot(index='date', columns='code', values='close') # 透视 # 可视化 stock_data_close.plot(subplots=True, figsize=(8,6)) # 保存数据 stock_data_close.to_csv('d://three_stock_data_close.csv')
AI量化的成长之路

浙公网安备 33010602011771号