Python Quandl 包

2025 年 1 月 12 日 | 9 分钟阅读

在接下来的教程中,我们将通过一些示例了解 Quandl 包及其在 Python 编程语言中的使用。但在开始之前,让我们先了解 Quandl 是什么?

了解 Quandl

Quandl 是一个向用户提供经济、金融和替代数据集的平台。用户可以下载免费数据、购买付费数据或向 Quandl 出售数据。

在接下来的教程中,我们将了解如何借助 Python 编程语言提取数据。

了解 Quandl 的数据结构

Quandl 的数据有两种格式:第一种是时间序列,第二种是表格。

请记住,某些数据集可以同时以两种格式提供。

时间序列格式

时间序列数据是指在一段时间内获取的数据。

时间序列数据通常借助折线图显示,其中 X 轴表示日期,Y 轴表示其他数值观察结果。

时间序列格式仅包含数值数据,这些数据由一个日期字段索引。此语句意味着数据按日期排序。此格式允许用户检索完整的时间序列或特定部分,也称为“切片”。

Quandl 的大多数数据集都以时间序列格式存储,因为财务数据通常包含与该格式完美匹配的日期和观察结果。

表格格式

表格不仅包含数值,还包含各种未排序的数据类型,如字符串、数字、日期等等。我们还可以将它们筛选到不同的字段中。

什么是 Quandl ID 代码?

每个数据源都包含一个短 ID。此 ID 也称为 Quandl 代码。

例如,

  • 联邦储备经济数据(时间序列):FRED
  • 核心美国基本面(表格):SF1

像 FRED 这样的时间序列数据由大量单独的时间序列组成,每个时间序列都有其 Quandl 代码添加到主 Quandl 代码中。例如,美国非农失业率:FRED/UNRATE。

相反,像 SF1 这样的表格数据由一个或多个表格组成,每个表格都有其 Quandl 代码。例如,核心美国基本面表格的 Quandl 代码是 SHARADAR/SF1。

Quandl 提供广泛的数据分析工具,包括 API、Python、R、Excel、Ruby 等等。

完整的列表可在 https://data.nasdaq.com/tools/full-list 找到。

了解 Quandl 的优缺点

使用 Quandl 的优点或好处如下

  1. Quandl 提供了大量数据(超过 2000 万个数据集)。
  2. 所有数据集均可即时下载,并可选择任何首选格式。
  3. Quandl 上的所有数据集都可通过相同的 API 访问,无论数据最初由谁发布或以何种格式发布。
  4. 数据是透明的。
  5. 数据集干净且易于查找。
  6. Quandl 的某些部分免费向所有人开放。
  7. 每周都会添加新数据。
  8. 我们可以在许多程序(Excel、R、Python、Ruby、MATLAB 等)中使用 Quandl。
  9. 我们可以使用 Quandl 出售数据。

使用 Quandl 的缺点或弊端如下

  1. 有许多异国情调的数据集不是免费的。
  2. 他们在构建分析或发现信息时提供的支持有限。
  3. Quandl 对初学者不太友好。
  4. 他们没有实时或延迟的股票价格数据。
  5. 他们没有主证券列表。

Quandl 是免费的吗?

Quandl 提供免费和高级产品。Quandl API 是免费的,并允许访问所有免费数据集。

Quandl 用户需要付费才能访问 Quandl 的高级数据产品。

了解免费和高级数据集之间的区别

Quandl 提供来自不同“可信和知名”来源(如中央银行、组织、政府机构等等)的各种免费产品。

相反,Quandl 的高级产品来自 Barchart、AlgoSeek、Brave New Coin、Applied Research、CryptoCompare 等数据提供商。

完整的列表可在 https://www.quandl.com/publishers 找到。

Quandl 的高级数据集有固定的更新周期。相比之下,免费数据集没有保证的更新周期,通常可能需要数小时到数周、数月甚至数年(取决于数据本身)。

Quandl 的高级数据由拥有数十年经验的专业提供商开发和管理。这一切都增强了文档、组织、准确性、独特性和数据结构的改进。在这种情况下,我们可以看到高级数据的优势。

我们可以通过订阅在 Quandl 上购买高级数据。通过这些订阅计划,我们可以只订阅我们需要的特定数据集。这意味着我们只需为我们需要的数据付费。另外,请记住 Quandl 不会收取任何平台使用费或开放数据源使用费。

大多数高级数据集都附带一些免费的示例数据。我们可以通过登录 Quandl 账户来访问这些免费示例数据。一旦我们点击我们感兴趣的任何高级数据源,网站将带我们到该数据源的主页,在那里我们将获得一些示例数据。

需要提到的是,每个免费数据源都包含一个透明链接,该链接指向其来源,这意味着我们可以验证数据及其来源。

了解 Quandl 中免费数据的类型

Quandl 为用户提供各种免费数据,包括价格与成交量、基本面、衍生指标、情绪、国家统计数据等等。

以下是 Quandl 平台上可用的一些免费数据集列表

  1. Wiki 连续期货 - 此数据集建立在 ICE、CME、LIFFE 等的原始数据之上,并由 Quandl 社区管理。
  2. 联邦储备经济数据 - 此数据集涉及就业、劳动力、增长、制造业、通货膨胀和美国经济数据。

了解 Quandl 中付费数据的类型

Quandl 为用户提供与估值、公司、行动、替代数据、技术分析等相关的数据集。

以下是 Quandl 平台上可用的一些高级数据集列表

  1. 纳斯达克多尔西技术分析数据 - 此数据集包含超过 50 个技术指标和图表信息,涵盖超过 49,000 种全球股票、共同基金和 ETF。
  2. Zacks 销售额估算 - 此数据集包含对超过 4,000 家美国和加拿大上市公司销售额估算的共识。
  3. Sharadar 核心美国股票和基金价格 - 此数据不言自明。

在 Quandl 中创建账户

在 Quandl 平台上拥有一个账户非常重要,原因如下

  1. 它允许我们访问他们的 API、工具和库。
  2. 我们可以下载任何格式的免费或高级数据。
  3. 我们还可以访问 Quandl 的导出和可视化工具。
  4. 它还允许我们查看有关其高级数据的定价和许可的相关信息。

现在让我们开始使用 Quandl 账户。请记住,注册是免费的,不需要信用卡或借记卡信息。

以下是在 Quandl 上注册的步骤

第 1 步: 访问 Quandl 网站(链接:https://data.nasdaq.com/),然后点击右上角的“注册”按钮。

Quandl package in Python

第 2 步: 将出现一个注册网页,需要用户输入姓名和使用 Quandl 或纳斯达克数据链接的目的(商业、学术或个人)。请随意输入所需详细信息。完成后,点击“下一步”。

Quandl package in Python

第 3 步: 现在,将出现另一个网页,要求用户输入电子邮件地址和国家/地区,并回答有关“您将如何使用此数据?”的问题。填写所需条目后,点击“下一步”。

Quandl package in Python

第 4 步: 注册程序的最后一页将出现,用户将被要求创建密码。创建密码并勾选服务条款和隐私政策框后,点击“创建账户”。

Quandl package in Python

第 5 步: 现在,将出现一个欢迎页面,其中包含 API 密钥。请务必复制此密钥并验证电子邮件地址。

Quandl package in Python

如果有人在没有复制 API 密钥的情况下点击了“继续”,这不是问题。API 密钥可以在“账户详情”部分找到。

Quandl package in Python

现在让我们了解 API 密钥是什么。

API 密钥是应用程序编程接口密钥的缩写,被符号化为计算机传递给应用程序的一串代码。然后,应用程序或程序使用 API 密钥将用户识别给网站。

API 密钥是一个“秘密”身份验证令牌和唯一标识符。我们可以将其视为从 Quandl 收集数据的个人秘密“密码”。

访问 Quandl 数据的不同方法

我们可以借助 Python、Excel、MATLAB、Ruby、R 等访问 Quandl 数据。

在本教程中,我们将介绍 Python 方法。

使用 Python 提取 Quandl 数据

以下部分将学习如何使用 Python 编程语言提取 Quandl 数据。

我们将使用 Visual Studio Code (VS Code) 进行此部分。我们将使用名为“pip”的框架为 Python 安装 Quandl 包。“pip”框架允许程序员从受信任的公共存储库安装包或模块并对其进行管理。我们可以使用此框架并在命令提示符 (CMD) 或终端中键入以下命令

语法

安装包后,我们可以通过创建一个空的 Python 程序文件并编写一个 import 语句来验证它,如下所示

文件:verify.py

现在,保存上述文件并在终端中使用以下命令执行它:

语法

如果 Python 程序文件没有返回任何错误,则包已正确安装。但是,如果引发异常,请尝试重新安装包,也建议参考包的官方文档。

现在让我们通过一些示例来了解 Python Quandl 包的使用。

示例 1:WTI 原油价格

在以下示例中,我们需要从美国能源部获取 WTI 原油价格。现在让我们考虑以下演示相同内容的代码片段

代码

输出

            Value
Date
1986-01-02  25.56
1986-01-03  26.00
1986-01-06  26.53
1986-01-07  25.85
1986-01-08  25.87
...           ...
2022-02-02  88.16
2022-02-03  90.17
2022-02-04  92.27
2022-02-07  91.25
2022-02-08  89.32

[9124 rows x 1 columns]

说明

在上面的代码片段中,我们导入了 NumPy、Pandas 和 Quandl 包。然后,我们使用 Quandl 包中 ApiConfig 类的 api_key 属性激活了 API 密钥。然后,我们使用 Quandl 的 get() 方法从数据库中提取数据。了解我们想要使用的每个数据集的 Quandl 代码 ("ETA/PET_RWTC_D") 非常重要。

可以在每个数据集的文档页面下找到这些 Quandl 代码。例如:https://data.nasdaq.com/data/EIA-us-energy-information-administration-data/documentation。

最后,我们为用户打印了数据。

我们还可以将此数据打印在 NumPy 数组中。以下是演示相同实现的的代码

代码

输出

[('1986-01-02T00:00:00.000000000', 25.56)
 ('1986-01-03T00:00:00.000000000', 26.  )
 ('1986-01-06T00:00:00.000000000', 26.53) ...
 ('2022-02-04T00:00:00.000000000', 92.27)
 ('2022-02-07T00:00:00.000000000', 91.25)
 ('2022-02-08T00:00:00.000000000', 89.32)]

说明

在上面的代码片段中,我们在 quandl.get() 方法的 returns 参数中指定了 numpy。结果,数据以 NumPy 数组格式打印。

示例 2:美国 GDP 数据

在以下示例中,我们将下载一段包含特定日期的宏观经济数据,并将其保存为 CSV 文件。

以下是演示相同内容的代码片段

代码

输出

                Value
Date
2020-01-01  21481.367
2020-04-01  19477.444
2020-07-01  21138.574
2020-10-01  21477.597
2021-01-01  22038.226
2021-04-01  22740.959
2021-07-01  23202.344
2021-10-01  23992.355

CSV 文件中的输出

Quandl package in Python

说明

在上面的代码片段中,我们导入了所需的包。然后我们激活了 API 密钥以访问 Quandl 数据。然后我们使用了 quandl.get() 方法并下载了 FRED/GDP 数据,并提供了开始和结束日期。然后我们使用 Pandas 库的 DataFrame() 类将此数据转换为数据帧并为用户打印。最后,我们使用 to_csv() 方法将此数据帧保存到 CSV 文件中。