python多因子量化选股模型_指南 | 量化选股 with Python (*) 构建多因子模型的综合思路...

我们在前几篇指南里面分别讲解了几个常用的量化选股模型,主要内容是数据处理和回归方法。其实,对于构建一个模型而言,最困难的不是检验和回归本身,而是因子的构建。

更进一步说,因子降维的处理甚至也不过是另一种层次上的线性回归(只有通过有效性检验的因子才能参与到降维中去,而且降维的原理正是最小二乘方法。)

这一篇指南是本系列的收官之作吧。我们想要从综合步骤的角度再一次审视如何搭建多因子线性模型这个问题。因为我们想要更加强调python实操里面的细节技术,所以我们不会提及特定的模型,代码附在每个步骤的超链接里,我们把它们拆成了多个文章。如果想了解,可以从这一篇推送的对应链接进入。

请一定要看到最后!!!

在Anaconda3 Jupyter Notebook中进行操作:

import warnings

warnings.filterwarnings("ignore")

import numpy as np

import pandas as pd 

#data.xlsx文件是假定的股票数据统称,没有特定意义,在各个模块里面可能假设特定意义,里面有8个工作表

#df是一般操作的dataframe数据

数据读取和整合

基本步骤

股票数据的获取一般来自金融终端,是excel文件或是csv文件,这两种文件在Python中的处理方法是一致的。对于excel文件而言,一般获取后会储存为一个文件簿中的多个工作表,比如2017年数据,2018年数据···等等。所以,一般在读取数据之后还要进行整合。

我们一般需要把多个格式一致的工作表统一到一个DataFrame里面,才能进行时间维度或是行业维度上的分析。这里的拼接一般是纵向拼接。

方式一:工作表不多并且sheetname没有统一格式,使用循环读取所有工作表。

#读取数据temp=pd.read_excel('stock.xlsx',sheet_name=i,header=1)

                                  for i in range(8)]

#拼接数据  

df=pd.concat([temp[0],temp[1],temp[2],temp[3],temp[4],

                       temp[5],temp[6],temp[7]],

                       axis=0,ignore_index = True)  

#axis=0纵向拼接,多个表拼接成为一个表

方式二:工作表名字有统一格式,为了方便,生成工作表的名称列表,使用列表生成式整合。这里假设工作表储存格式为:Y12Q1···Y20Q1,Y20Q2,Y20Q3,Y20Q4。(12年到20年分季度财报披露数据)

sname = ['Y'+str(i)+'Q'+str(j) for i in list(range(12,20)) 

                for j in list(range(1,5))]

sname = sname[:-3] 

#没有20年的后三个数据所以取sname[:-3]

temp &

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值