共享和使用数据集从来都不是一件顺利的工作。数据集经销商通常必须编写大量关于他们的数据集的文件,数据消费者必须通过这些文件。这种文档往往容易出错,而一个不经意的错误就会造成严重的混乱。另一方面,数据消费者必须花费大量的时间来理解数据档案的结构,并编写复杂的代码来提取和加载它们。
数据消费者
数据分发者
在IBM,我们创建了Python包ParData来解决数据集共享的这些问题。一个数据集分销商只需附带一个描述数据集的模式,而数据集消费者只需几行代码就可以轻松地开始处理这些数据集。让我们以数据集JFK天气为例。JFK天气是一个数据集,包含了纽约市肯尼迪机场的历史天气数据。
DATE,HOURLYDewPointTempF,HOURLYRelativeHumidity,HOURLYDRYBULBTEMPF,HOURLYWETBULBTEMPF,HOURLYPrecip,HOURLYWindSpeed,HOURLYSeaLevelPressure,HOURLYStationPressure
2015-07-25T13:51:00Z,60,46,83,68,0.00,13,30.01,29.99
2016-11-18T23:51:00Z,34,48,53,44,0.00,6,30.05,30.03
2013-01-06T08:51:00Z,33,89,36,35,0.00,13,30.14,30.12
2011-01-27T16:51:00Z,18,48,36,30,0.00,14,29.82,29.8
...
显示更多显示更多图标
传统上,在开始使用这个数据集之前,数据消费者必须下载数据集,用tarfile模块解压缩,确定每一列的数据类型,并将其加载到一个pandas.DataFrame 对象中。有了ParData,数据集分发者只需要创建一个yaml格式的模式文件(我们已经创建了这个文件,ParData默认应该有)。
name: NOAA Weather Data – JFK Airport
published: 2019-09-12
homepage: https://developer.ibm.com/exchanges/data/all/jfk-weather-data/
download_url: https://dax-cdn.cdn.appdomain.cloud/dax-noaa-weather-data-jfk-airport/1.1.4/noaa-weather-data-jfk-airport.tar.gz
sha512sum: e3f27a8fcc0db5289df356e3f48aef6df56236798d5b3ae3889d358489ec6609d2d797e4c4932b86016d2ce4a379ac0a0749b6fb2c293ebae4e585ea1c8422ac
license: CDLA-Sharing-1.0
estimated_size: 3.2M
description: "The NOAA JFK dataset contains 114,546 hourly observations of various local climatological variables (including visibility, temperature, wind speed and direction, humidity, dew point, and pressure). The data was collected by a NOAA weather station located at the John F. Kennedy International Airport in Queens, New York."
subdatasets:
jfk_weather_cleaned:
name: Cleaned JFK Weather Data
description: Cleaned version of the JFK weather data.
format:
id: table/csv
options:
columns:
DATE: 'datetime'
path: noaa-weather-data-jfk-airport/jfk_weather_cleaned.csv
显示更多显示更多图标
数据消费者只需要有一行代码。
noaa_jfk_df = pardata.load_dataset('noaa_jfk')
显示更多显示更多图标
CSV文件已经被加载到一个pandas.DataFrame 对象,所有的列都是正确的数据类型。欲了解更多信息,请查看文档和教程。