Python中的Quandl包
在下面的教程中,我们将了解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代码。例如,Core US Fundamentals表的Quandl代码是SHARADAR/SF1。
Quandl提供了广泛的数据分析工具,包括API、Python、R、Excel、Ruby等等。
可以在以下网址找到完整的列表: https://data.nasdaq.com/tools/full-list 。
了解Quandl的优缺点
使用Quandl的优点如下:
- Quandl提供了庞大的数据集合(超过2000万个数据集)。
- 所有数据集都可以以任何首选格式立即下载。
- 无论数据最初是由谁发布的或以何种格式,都可以通过Quandl的相同API获得所有数据集。
- 数据是透明的。
- 数据集整洁且易于定位。
- Quandl的部分内容是免费并开放给所有人。
- 每周都会添加新数据。
- 我们可以在许多程序中使用Quandl(如Excel,R,Python,Ruby,MATLAB等)。
- 我们可以利用Quandl销售数据。
使用Quandl的缺点如下:
- 有许多独特的数据集是收费的。
- 在构建分析或发现信息时,提供的支持有限。
- Quandl对初学者不太友好。
- 他们没有实时或延迟的股票价格数据。
- 他们没有主要安全清单。
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平台上提供的一些免费数据集的列表:
- Wiki连续期货 - 此数据集建立在ICE、CME、LIFFE等原始数据的基础上,并由Quandl社区进行管理。
- 美联储经济数据 - 此数据集涉及就业、劳动力、增长、制造业、通胀和美国经济数据。
了解Quandl中的付费数据类型
Quandl为用户提供与估算、企业、行动、替代数据、技术分析等相关的付费数据。
以下是Quandl平台上提供的一些高级数据集的列表:
- Nasdaq Dorsey技术分析数据 - 此数据集包含超过50个技术指标和49000多家全球股票、共同基金和交易所交易基金的图表信息。
- Zacks销售预测 - 此数据集包括对4000多家美国和加拿大上市公司的销售预测的共识。
- Sharadar核心美国股票和基金价格 - 此数据可自解释。
在Quandl上创建账户
在Quandl平台上创建账户至关重要,原因如下:
- 可以访问其API、工具和库。
- 可以以任何格式下载免费或付费数据。
- 还可以访问Quandl的导出和可视化工具。
- 还可以查看有关其付费数据定价和许可的相关信息。
现在让我们开始使用Quandl账户。请记住,注册是免费的,不需要信用卡或借记卡信息。
以下是注册Quandl账户的步骤:
步骤1: 访问Quandl网站(链接:https://data.nasdaq.com/),然后单击右上角的“注册”按钮。
步骤2: 在页面上将显示一个注册页面,需要用户填写他们的名字和姓氏,以及使用Quandl或Nasdaq Data Link的目的(商业、学术或个人)。请随意输入所需的详细信息。完成后,点击”Next”。
步骤3: 现在,另一个网页将出现,要求用户输入他们的电子邮件地址和国家,并回答一个关于“您将如何使用这些数据?”的问题。在填写必填项后,点击“下一步”。
步骤4: 用户将看到注册流程的最后一个页面,要求用户创建密码。一旦密码创建成功,并勾选了服务条款和隐私政策框,点击“创建账户”。
步骤5: 现在,一个欢迎页面将出现在 API Key 上。请确保复制该密钥并验证电子邮件地址。
如果有人在没有复制API密钥的情况下按下了“继续”按钮,这不是个问题。API密钥可以在“账户详情”部分找到。
现在让我们了解一下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)或终端中键入以下命令:
语法:
$ pip install quandl
安装完包后,我们可以通过创建一个空的Python程序文件并编写一个导入语句来验证它,如下所示:
文件:verify.py
import quandl
现在,保存上面的文件并在终端中使用以下命令执行:
语法:
$ python verify.py
如果Python程序文件没有返回任何错误,则表示包安装正确。但是,如果引发了异常,请尝试重新安装包,并建议参考官方包文档。
现在让我们通过一些示例来了解如何使用Python Quandl包。
示例1:WTI原油价格
在下面的示例中,我们需要从美国能源部获取WTI原油价格。现在让我们考虑以下演示相同内容的代码片段:
代码:
# importing the required packages
import quandl as qdl
import numpy as np
import pandas as pd
# activating the API key
qdl.ApiConfig.api_key = "ENTER_API_KEY"
# extracting the data using the get() method
data = qdl.get("EIA/PET_RWTC_D")
# printing the data
print(data)
输出:
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数组。以下是演示相同实现的代码:
代码:
# importing the required packages
import quandl as qdl
import numpy as np
import pandas as pd
# activating the API key
qdl.ApiConfig.api_key = "dq16p4KxCQzJJsxPyUa2"
# extracting the data using the get() method
data = qdl.get("EIA/PET_RWTC_D", returns = "numpy")
# printing the data
print(data)
输出:
[('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文件。
下面是代码片段示例:
代码:
# importing the required packages
import quandl as qdl
import numpy as np
import pandas as pd
# activating the API key
qdl.ApiConfig.api_key = "dq16p4KxCQzJJsxPyUa2"
# extracting the data using the get() method
data = qdl.get("FRED/GDP", start_date = "2020-01-01", end_date = "2021-12-31")
# printing the data
# print(data)
# converting the data into Panda DataFrame
dFrame = pd.DataFrame(data, columns = ['Value'])
# printing the data from DataFrame
print(dFrame)
# saving the file in a CSV file
dFrame.to_csv("test.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文件中:
解释:
在上面的代码片段中,我们导入了所需的包。然后,我们激活了API密钥以访问Quandl数据。然后使用 quandl.get() 方法下载 FRED/GDP 数据并提供开始和结束日期。然后使用Pandas库的 DataFrame() 类将此数据转换为数据框并为用户打印出来。最后,我们使用 to_csv() 方法将此数据框保存到CSV文件中。