我爱编程

量化交易平台Quantopian讲座(3)—pandas之Ser

2017-03-04  本文已影响550人  taoeaten

接上文,pandas也是一个常用的Python科学计算库,提供了许多功能强大的数据结构,本篇文章会介绍最为常用的SeriesDataFrame两种数据结构,pandas底层依赖于NumPy,因此也继承了NumPy的优势,提供了许多便利的统计学、数学函数。 将pandas结合matplotlib,可以方便地存储、计算并可视化你的数据,简单的几行代码就可以绘制出一目了然的图表。

示例代码 随机损益波动图

这篇文章主要来介绍下Series,pandas中Series是一个可以存储任何数据类型的一维数组,通常用来处理时间序列数据

创建序列

使用pd.Series()函数,传入Python的list或NumPy的ndarray即可生成一个序列

创建序列
序列有几个常用属性:

获取序列中元素

获取序列中元素pandas提供了两个函数

过滤序列

如果需要根据条件过滤序列元素,可使用布尔数组进行过滤,序列支持标准比较符,比较后就会得到一个布尔序列。


支持标准比较符

将这个布尔序列传入原序列的loc函数,就可以完成序列的条件过滤


用布尔数据过滤元素

应用示例

Quantopian提供的get_pricing()函数,返回的就是一个序列,其索引为datetime类型

get_pricing函数
默认的采样频率为天,可使用resample()函数对原始数据集进行重新采样,还可以自定义采样方法
resample函数

get_pricing返回数据中只包含交易日,如果希望将节假日也加入其中,需要你手工生成并制定日期索引,有了索引之后,你又会面临另一个问题,节假日的股价如何填充,quantopian有两种模式

可以看到上图中最开始存在两个空值,这是因为前两天都恰巧为非交易日,所以就向前填充的策略就无法生效

对于这种空值数据,我们既可以使用fillna()方法进行填充,也可以使用dropna()方法丢弃此部分数据

空值处理

内置的统计方法可以方便的看到各统计指标

统计方法
diff()函数可以自动将序列转换为一个每日价格变动序列,pct_change()函数则生成一个每日价格变动比例的序列,我们这里讲每日价格变动比率绘制出来
示例代码
每日价格变化比率图

rolling_mean()rolling_std()函数可以提供移动平均值与移动标准差,这里绘制一个30天的移动平均线:

示例代码
30天移动平均线

这篇就先介绍到这,下篇我们来介绍pandas中的另外一员干将——DataFrame。

谢谢大家,欢迎订阅!

上一篇下一篇

猜你喜欢

热点阅读