python量化数据处理小细节(以后还会不断补充)

使用tushare数据源获取数据后处理

以下都是本人在获得数据后,进行量化回测时,处理数据遇到的各种坑以及解决方案,有些甚至都很幼稚,切勿嘲笑

获取数据

导包

import tushare as ts
import pandas as pd
import matplotlib
#(jupyternotebook 画图用的,别的工具可以不用)
%matplotlib auto 
#正常显示画图时出现的中文和负号
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] =False
#显示所有列
pd.set_option('display.max_columns',None)
#显示所有行
pd.set_option('display.max_rows',None)

获取50指数数据

token='token值'
pro = ts.pro_api(token)
df = ts.fund_nav(ts_code='510050.SH')
df.head()

在这里插入图片描述
数据处理:
1.ts_code只保留前面代码

df['ts_code']=df['ts_code'].apply(lambda x:x[:6]).tolist()

2.列名修改

#修改列名
df.rename(columns={
    
    'ann_date':'trade_date'},inplace=True)

3.删除不需要的列

df = df.drop(['end_date','accum_nav','accum_div','net_asset','total_netasset','adj_nav','update_flag'],axis=1,inplace=True)

4.将数字日期修改为%Y-%m-%d格式
粗略说明,之后会专门讲解,挺麻烦的,将str格式转化为数字,再进行转换

df['trade_date'] = df['trade_date'].astype('datetime64[ns]')

在这里插入图片描述
5.按照日期排序
博主曾经遇到一个错误,就是日期排序后,有几个日期不是按照顺序排的,后来解决了,但目前找不到当时的解决方案,以后补充(备注,也欢迎大家补充)

df = df.sort_values(by='trade_date')
df.set_index('trade_date',inplace=True)

猜你喜欢

转载自blog.csdn.net/qq_26742269/article/details/109514968