本系列内容所用Python/ target=_blank class=infotextkey>Python版本为anaconda,直接浏览器搜索下载安装即可!
今天的内容我们来简单了解一下Python的pandas第三方库,他和numpy库一样,也是在科学计算方面提供了很多数据结构和方法,非常强大好用。
一、pandas库
pandas库主要由两种基础数据结构:Series和DataFrame,以及操作这两种数据结构的方法构成。其中Series是一维数据结构,而DataFrame是二维数据结构,要说他们和ndarray数据对象的区别,那大概就是他们都具有数据标签这一属性,而ndarray对象没有。
二、Series对象
1.Series数据类型由一列数据及与之对应的标签两部分组成,series对象本质是numpy数组,因此numpy函数同样适用于series对象。每个series对象实际由两个数组组成,具有index和values两大属性。
2.Series对象的创建
index:是从numpy数组继承的index对象
values:保存值,是一维的numpy对象
Series对象的创建是通过Series类的构造函数Series函数来实现的,创建Series对象时可以同时为index和values属性赋值。
创建空的Series对象
同时指定values和index属性
没有index属性
对已创建的series对象添加新的元素
Series对象修改和添加元素
可以把series对象看成有序的字典,通过字典数据来创建
series对象的values属性取值由一维数组构成,用不同方法生成的一维数组都可以作为values属性的取值
总结:Series对象都是通过Series类的Series函数创建的,其中参数可以是单独的字典,或values属性参数为任何一维数组表达式
3.Series对象元素的提取与切片
通过方法提取元素
head()方法,提取对象前部分元素,参数可以选填,默认为前5条
tail()方法,提取后半部分元素,参数可以选填,默认为后5条
take()方法,指定索引值提取
利用位置或标签索引提取元素与切片
Series对象不仅可以通过位置索引提取元素,还可以通过标签索引提取元素,同时不仅可以使用位置索引数组提取元素,还可以使用标签索引数组提取元素
切片
Series对象也支持位置索引切片和标签索引切片,两者的区别是,位置索引切片不包括终止值元素,而标签索引切片包含终止标签元素
三、时间序列基础
时间序列分析在金融数据分析中占据重要的位置,pandas库也支持时间序列数据类型,时间序列类型是一种特殊的Series类型,与一般Series类型不同的是,时间序列的index属性为时间戳
1.创建时间序列
时间序列的创建方式与一般的Series对象创建方式相同,只不过其中的index属性为Timestampd对象
Timestamp对象由pandas库中的Timestamp()方法创建,Timestamp()方法的传入参数可以是字符串,也可以是datetime对象
不过由于Timestamp方法不接受可迭代对象作为参数输入,所以当我们创建时间序列时需要对每个元素单独操作一次Timestamp方法,这样就显得很麻烦,因此一般使用pandas库中的to_datetime方法将Series的index属性转换为DatetimeInedx
实际上,对于datetime对象,pandas会自动将其转换成Timestamp对象,所以我们可以直接将datetime对象列表作为时间序列的indx
2.时间序列提取元素
时间序列只是特殊的Series对象,一般的索引操作对其仍然有效
简化时间提取元素
3.滞后或超前操作
滞后操作是指将t期数据置换成t-i期数据,而超前操作是指将t期数据置换成t+i期数据,这在实际应用中很常见,在计算收益率的时候,我们可以简单的将数据滞后1期,然后用原来的数据减滞后过的数据,再除以滞后过的数据就得到了收益率
shift中参数正数为滞后,负数为超前
好了,今天的学习内容到这里也将告一段落了,明天我们再接再厉!