欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

时间序列数据的行列转换

程序员文章站 2022-03-11 10:13:04
我在做股票市场时间序列的分析时,发现从数据库下载的数据由于各支股票的date数据中不包括停牌的date,并且未上市的股票也没有数据,所以这种情况下就不能直接做求和运算。为了将停牌数据和未上市数据的空值进行填充,我就想到将日期作为主键,将各支股票代码作为列名,即开始之前,先用简单的数据做一个尝试:学生表:成绩表:目标是得到成绩单,即每个学生每门科目的成绩,如图:SQL语句为:接下来进入正题:如何处理时间序列数据数据为10支股票十......

我在做股票市场时间序列的分析时,发现从数据库下载的数据由于各支股票的date数据中不包括停牌的date,并且未上市的股票也没有数据,所以这种情况下就不能直接做求和运算。

为了将停牌数据和未上市数据的空值进行填充,我就想到将日期作为主键,将各支股票代码作为列名,即

 

时间序列数据的行列转换时间序列数据的行列转换时间序列数据的行列转换


开始之前,先用简单的数据做一个尝试:

学生表:

时间序列数据的行列转换

 

成绩表:

时间序列数据的行列转换

 

目标是得到成绩单,即每个学生每门科目的成绩,如图:

时间序列数据的行列转换

 

SQL语句为:

时间序列数据的行列转换


接下来进入正题:如何处理时间序列数据

 

数据为10支股票十年的日收盘市值(日收盘价*总股本)数据,顺序是先把一支股票的每日数据列完再列下一支股票的每日数据。

时间序列数据的行列转换

我想得到的是,以日期为主键,10支股票的股票代码为字段名的表格

 

SQL语句如下:

时间序列数据的行列转换

( ps.date表是辅助创建的一个工作日序列)

 

得到的结果为:

时间序列数据的行列转换

其实我这种方法也挺麻烦的,但无奈我EXCEL不怎会用,只能用这种笨办法,希望有大佬教教我更好的方法

 

本文地址:https://blog.csdn.net/EzrealsBF/article/details/110957995