书接上回,上节我们定义了一个获取某个指数某日的PE数值的函数。下面要做的就是得到这个函数的时间序列,然后计算出这个时间序列中每天的PE数值,最后就可以用图形进行展示了。
这个方法和前文中的方法一样,我们照猫画虎就可以了。
df = get_price('000016.XSHG', start_date='2014-01-01', end_date='2019-09-01', fields=['close'], fq='pre')#给df添加一列,列名PE,先赋值0.00df.loc[:,"PE"]=0.00ltIndex = df.indexi = 0;for irow in ltIndex: strdate = irow.strftime('%Y-%m-%d') fPE = get_index_value_date('000016.XSHG' , strdate) df.iloc[i,1] = fPE i = i + 1print(df)
000016.XSHG就是上证50指数的代码,我们这次计算的就是上证50指数2014年1月1日到2019年9月1日的每天的PE数值。
我们定义的函数get_index_value_date用在了for循环中,注意,for循环中有个日期格式的转换问题。因为我们定义的函数中的日期其类型是string类型,而在ltIndex中的日期不是string类型,而是日期类型的,所以不能直接作为参数用在我们的函数中。strdate = irow.strftime('%Y-%m-%d')的意思就是把irow这个日期类型的日期转换成字符串类型的日期。这种不用变量之间类型的转换是编程中进场需要用到的,比如int类型转字符串类型&