美文网首页我爱编程
量化交易平台Quantopian讲座(3)—pandas之Ser

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

作者: taoeaten | 来源:发表于2017-03-04 19:31 被阅读550次

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

    示例代码 随机损益波动图

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

    创建序列

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

    创建序列
    序列有几个常用属性:
    • name属性,序列的名称
    • index属性,序列的索引
      可以在调用初始化函数的时候作为参数传入,也可以之后添加,默认情况下为0~N-1的数字,索引还可以是日期类型,可使用pd.date_range()产生。
      日期索引

    获取序列中元素

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

    • iloc
      iloc[]可以通过整数下标获取元素,同样,切片(slicing)功能也必不可少
      iloc获取元素
    • loc
      loc[]通过索引获取元素
      loc获取元素

    过滤序列

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


    支持标准比较符

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


    用布尔数据过滤元素

    应用示例

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

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

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

    • ffill 向前填充,以前一个非空值填充
    • bfill 向后填充,以后一个非空值填充


      重建索引

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

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

    空值处理

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

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

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

    示例代码
    30天移动平均线

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

    谢谢大家,欢迎订阅!

    相关文章

      网友评论

        本文标题:量化交易平台Quantopian讲座(3)—pandas之Ser

        本文链接:https://www.haomeiwen.com/subject/kkvmittx.html