设置数据¶
本节介绍如何向项目的data文件夹添加数据集。同时回顾这些数据集是如何在Kedro的Data Catalog中注册的,该目录是项目所有可用数据源的注册表。
项目数据集¶
太空飞行教程使用了三家虚构公司的数据集,这些公司负责运送顾客往返月球。数据以两种不同格式提供:.csv 和 .xlsx:
companies.csv包含关于太空旅行公司的数据,例如它们的位置、舰队数量和评级reviews.csv是客户针对舒适度和价格等类别的评价数据集shuttles.xlsx记录了整个舰队中各航天器的属性数据,例如发动机类型和载客量
spaceflights 入门模板已经将数据集添加到您项目的 data/01_raw 文件夹中。
数据集注册¶
在Kedro能够加载数据集之前,必须注册以下关于数据集的信息:
文件位置(路径)
给定数据集的参数
数据类型
版本控制
打开太空飞行项目的conf/base/catalog.yml文件查看内容。两个csv数据集注册如下:
Click to expand
companies:
type: pandas.CSVDataset
filepath: data/01_raw/companies.csv
reviews:
type: pandas.CSVDataset
filepath: data/01_raw/reviews.csv
同样适用于 xlsx 数据集:
Click to expand
shuttles:
type: pandas.ExcelDataset
filepath: data/01_raw/shuttles.xlsx
load_args:
engine: openpyxl # Use modern Excel engine (the default since Kedro 0.18.0)
额外的参数行load_args会作为关键字参数传递给Excel文件读取方法(pd.read_excel)。虽然此处未指定,但对应的输出参数是save_args,其值将被传递给pd.DataFrame.to_excel方法。
测试Kedro能否加载数据¶
在项目根目录下打开终端中的kedro ipython会话:
kedro ipython
然后在IPython提示符中输入以下内容来测试加载一些csv数据:
companies = catalog.load("companies")
companies.head()
第一条命令创建了一个变量(
companies),其类型为pandas.DataFrame,并从底层文件路径data/01_raw/companies.csv加载数据集(根据catalog.yml中的顶层键也命名为companies)。pandas中的head方法会显示DataFrame的前五行数据。
Click to expand
INFO Loading data from 'companies' (CSVDataset)
Out[1]:
id company_rating company_location total_fleet_count iata_approved
0 35029 100% Niue 4.0 f
1 30292 67% Anguilla 6.0 f
2 19032 67% Russian Federation 4.0 f
3 8238 91% Barbados 15.0 t
4 30342 NaN Sao Tome and Principe 2.0 t
同样地,为了测试xlsx数据是否按预期加载:
shuttles = catalog.load("shuttles")
shuttles.head()
您应该会看到类似以下的输出:
Click to expand
INFO Loading data from 'shuttles' (ExcelDataset)
Out[1]:
id shuttle_location shuttle_type engine_type ... d_check_complete moon_clearance_complete price company_id
0 63561 Niue Type V5 Quantum ... f f $1,325.0 35029
1 36260 Anguilla Type V5 Quantum ... t f $1,780.0 30292
2 57015 Russian Federation Type V5 Quantum ... f f $1,715.0 19032
3 14035 Barbados Type V5 Plasma ... f f $4,770.0 8238
4 10036 Sao Tome and Principe Type V2 Plasma ... f f $2,820.0 30342
完成后,使用exit()关闭ipython会话。
更多信息¶
观看视频¶
自定义数据¶
Kedro 支持 多种 数据集 开箱即用,但您也可以添加对任何专有数据格式或文件系统的支持。
您可以在涵盖高级用法的特定文档中找到关于如何添加对自定义数据集的支持的更多信息。
支持的数据位置¶
Kedro 使用 fsspec 从多种数据存储中读取数据,包括本地文件系统、网络文件系统、HDFS 以及所有广泛使用的云对象存储。