结合金融时间序列演示Pandas模块的操作(一)
在金融分析与风险管理中,往往需要对金融时间序列进行分析。时间序列就是以时间作为索引的数据集合,但 NumPy 的数组结构无法满足时间序列的要求。因此,需要引入 Pandas 模块。
由于 Pandas 是 Python 的外部第三方模块,在使用前需要导入,并查询 Pandas 的版本号信息。
>>>import pandas as pd
>>>pd.__version__ #查询Pandas的版本号
'1.0.1'
一、Pandas 的数据结构
Pandas 的数据结构可以分为两大类:序列和数据框。继续沿用《结合金融场景演示NumPy模块的操作(一)》中的例1进行说明。
股票名称 | 2018年9月3日 | 2018年9月4日 | 2018年9月5日 | 2018年9月6日 | 2018年9月7日 |
---|---|---|---|---|---|
中国石油 | 0.3731% | 2.1066% | -0.4854% | 0.6098% | -0.6060% |
工商银行 | -0.1838% | 0.1842% | -1.6544% | -0.3738% | 0.3752 |
上汽集团 | -0.3087% | -0.0344% | -3.3391% | 0.7123% | 0.4597% |
宝钢股份 | -2.4112% | 1.1704% | -2.9563% | -1.4570% | 1.6129% |
1.序列
序列(series)是一个类似于一维数组的数据结构,只不过它由两个部分组成,第1部分是标签(label)或者索引(index),第2部分是对应的数值,需要注意的是这两部分的长度必须一致。
生成序列需要运用 Series 函数,并且需要输入涉及的索引 index。针对例1中2018年9月3日的数据,通过手动方式生成序列,具体代码如下:
>>>return_series1 = pd.Series([0.003731,-0.001838,-0.003087,-0.024112],index=['中国石油','工商银行','上汽集团','宝钢股份'])
>>>return_series1
-----------------------------------输出结果-------------------------------------
中国石油 0.003731
工商银行 -0.001838
上汽集团 -0.003087
宝钢股份 -0.024112
dtype: float64
也可以借助已创建的数组return_array,用数组生成针对2018年9月3日数据的序列,具体代码如下:
-----------------------------------代 码---------------------------------------
>>>return_array #为了便于演示,省略了数组的输入过程
---------------------