pandas指数基金定投策略
1.pd.read_csv中的index_col表示将交易日期这一列指定为index索引,parse_dates表示将某一column(通常包含时间数据信息)解析为时间列,以便将输入的字符串转换为可变的的时间序列;做时间序列数据分析通常要指定parse_dates,否则在选取时间范围时可能识别错误。
2.cumprod()函数和cumsum()函数使用
3.了解pd.concat()的用法:concat 与其说是连接,更准确的说是拼接。就是把两个表直接合在一起。于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis。axis=0 是行拼接,拼接之后行数增加,列数也根据join来定,join=’outer’时,列数是两表并集。同理join=’inner’,列数是两表交集。
在默认情况下,axis=0为纵向拼接,此时有concat([df1,df2]) 等价于 df1.append(df2),在axis=1 时为横向拼接 ,此时有concat([df1,df2],axis=1) 等价于merge(df1,df2,left_index=True,right_index=True,how=’outer’)
4.loc,iloc,ix的区别,loc[[0,100],[‘a’,’b’]]表示选取第0和100行两行,a,b两列;iloc同样用法,不同是iloc可以用iloc[[0,-1],[‘a’,’b’]],loc不行,但iloc不能用行标签来选取;
data=pd.read_csv('overview-data-sh/index/sh000001.csv',encoding='gbk',index_col='交易日期',parse_dates=['交易日期'])
data=data[['股票代码','收盘价']].sort_index()
data.index=pd.to_datetime(data.index)
data=data['20130731':'20160930']
data['无风险利率']=(4/100 + 1) **(1/250)-1 #将4%作为无风险年化利率
data['无风险收益_净值']=(data.无风险利率+1).cumprod()
b