当前位置:文档之家› Python金融大数据分析 第六章 金融时间序列

Python金融大数据分析 第六章 金融时间序列


pandas 基础
• 例中可以看到. pandas 默认只接受索引已经存在的值。 我们丢失了索 引为 y 的值,在 索引位置 z 可以看到 NaN (也就是"不是一个数字" )值。 为了保留这两个索引,我们可以提供一个附加参数.告诉 pandas 如何 连接。 例子中的 bow="outer"表示使用两个索引中所有值的并集:
使用 DataFrame 类的第二步
• 从现在开始,我们将处理数值数据。 我们将随着进程增加 DatetimeIndex 等功能,以管理时间序列数据。 为了生成一个模 拟数据集,按照下面的例子,生成一个包含 9 行 4 列标准正态分 布伪随机数的 numpy.ndarray:
使用 DataFrame 类的第二步
pandas 基础
• 在金融学中遇到的最重要数据类型之一是金融时间序列。 这是以 日期和/或时间作为索引的数据。例如,股价就表现为金融时间序 列数据。类似地,美元-欧元汇率也是金融时间序列;汇率在短暂 的时间间隔内报价,一组此类报价就是汇率的时间序列。
• 没有一种金融学科不将时间作为重要因素考虑,这和物理学及其 他科学相同。 Python 中处理时间序列的主要工具是 pandas 库 pandas 的主要作者 Wes McKinney 在大型对冲基 金 AQR 资本管 理公司任分析师时开始开发这个库。正如本章所阐述的, DataFrame 和 Series 等基本类的灵感来自于统计分析语言 R,该 语言无疑长于这类建模和分析工作。
• 你可以更直接地构造 DataFrame 对象(正如前面所见),但是使用 ndarray 对象通常是 一个好选择,因为 pandas 将保留基本结构, "只"添加元信息(例如索引值)。 这也代 表着金融应用和科学研究 的一种典型用例。 例如:
使用 DataFrame 类的第二步
• 表 6-1 列出 了DataFrame 函数使用的参数。 表中,"类似数组"意 味着和 ndarray 对象类似的数据结构一一例如列表对象。 "索引" 是 pandas Index 类的一个实例,
• 在 6-2 列出 date_range 函数的参数
使用 DataFrame 类的第二步
• 和列一样.我们将新生成的 Datetimelndex 作为新的 Index 对象, 赋给 DataFrame 对象:
使用 DataFrame 类的第二步
• 在 date_range 函数帮助下生成 DatetimeIndex 对象, 频率参数 freq 有多种选择。表6-3 列出了所有选项。
Python金融大数据分析
第六章 金融时间序列
本章按照如下主题组织:
• 第一和第二步
• 我们使用非常简单和小型的数据集开始探索 pandas 的功能;然后使用 NumPy ndarray 对象并将其转换为 DataFrame 对象。在此过程中,介绍 基本的分析和可视化功能
• 使用来自 CSV 文件的数据
使用 DataFrame 类的第二步
• 和结构数组一样.我们已经看到. DataFrame 对象可以通过指定一 个具有合适数量元素的列表,直接定义列名。 下面的例子说明, 可以随时定义/更改 DataFrame 对象的属性:
使用 DataFrame 类的第二步
• 列名提供访问 DataFrame 对象中数据的高效机制,同样和结构数 组类似:
pandas 基础
• 附加一个 DataFrame 对象以提供正确的索引信息往往是更好的做 法。 下面的例子保留这种索引:
pandas 基础
• pandas 的优势之一是处理缺漏的信息。 为此,考虑如下代码, 这段代码添加一个新列, 但是使用稍微不同的索引 。 我们在此 使用相当灵活的 join 方法;
pandas 基础
• 从最根本的层面上看DataFrame 类设计用来管理具有索引和标签 的数据,这些数据与来自 SQL 数据表或者电子表格应用中的工作 表内的数据没有太多的不同。考虑如下代码创建 这个简单的例子已经说明了 DataFrame 在存储数据上的主要特性: • 数据
• 数据本身可以用不同组成及类型提供(列表、 元组、 ndarray 和字典对象 都是候选者)。
• 标签
• 数据组织为列,可以自定义列名。
• 索引
• 索引可以采用不同的格式(例如数值、字符串、时间信息)
pandas 基础
• 下面是简单的例子,说明 DataFrame 对象上典型操作的工作方式:
pandas 基础
• 逗号分隔值 (CSV) 文件是交换金融时间序列数据的全球标准之一 ; pandas 可以高效地从这些文件中读取数据。使用两种指数的数据,我们 利用 pandas 实施一次回归分析。
• 高频数据
• 近年来,可用的金融时间序列数据越来越多地从每日报价转向分时数据 每日分时股价数据盘通常超过30年间收集的每日报价数据量
• 现在,索引确实是两个原始索引的并集。在扩增的新索引中,丢失的 数据点都由 NaN 值代替。 连接操作的其他选项包括 inner (索寻| 的交 集)、 left (默认值,使用调用方法的对象中的索引值)以及 right (使用被 连接对象的索引值)。
pandas 基础
• 尽管有丢失的值,但是大部分方法调用仍然有效。 例如 :
• 为了高效处理金融时间序列数据,还必须很好地处理时间索引。 这也可以视为 pandas 的一个重要优势。例如,假定我们分为 4 列的 9 个数据项对应于 2015 年 1 月开始的月底数据然后,用 date_range 生成一个 Datetimelndex 对象:
使用 DataFrame 类的第二步
• 一般来说,可以在 DataFrame 对象上进行和 NumPy ndarray 对 象相同的向量化操作:
• 在两个维度上同时扩增 DataFrame 对象是可能的:
pandas 基础
• 也可以取整个 DataFrame 对象来定义一个新列。 在这种情况下, 索引自动分配:
• 附加数据的方法也类似。 但是,在下面的例子中,我们会看到通 常必须避免的一个副作用一一索引被简单的编号索引代替:
相关主题