1、需求
在处理因子数据的时候我们通常需要对进行预处理,比如去极值 标准化,行业中性 市值中性等操作。
现有选股框架中无法直接获取某一时刻的截面数据,从而无法了解到该时刻其他个股因子值进行横向比较。
举个例子比如无法做因子行业中性化,再比如想要获得某个行业在T时刻总体的资金净流情况也比较困难。
2、理论上的解决方案
当然可以在现有的框架下嵌套循环去实现,但需求稍微变一下就又得重写部分代码,所以比较一劳永逸的解决方案
就是建立一个三个维度的数据结构方便查找。
pandas给出的解决方案就是panel,或者multiindex dataframe,我这里选择的是前者因为建立起来比较方便(pd的warning 中显示后期的版本中可能会移除panel只保留multiindex)。
3、举个例子
先简单介绍下panel data,这是一种常见于金融分析的数据结构,它有三个维度,放在股票上可以理解为在个股的数据结构上在加一个时间维度
这样从时间轴去切片就可以得到t时刻相应(个股,因子)的一张df表;同样的可以从因子的轴去切获得(个股,时间)的df表。
上图是2008.10.21的截面数据,个股太多只选了10个举例子。