在标准的环境中,您的数据可以在关系数据库(或其他公共数据存储)中,并跨多个表/文档/文件。要访问它,您首先需要获得您的凭证和访问授权,熟悉数据模式。然而,在这个项目中,事情要简单得多:您只需要下载一个压缩文件,即housing.tgz,,它包含一个CSV文件,它包含一个 housing.csv文件,它记录着所有的数据。

您可以使用您的web浏览器下载它,并运行tar xzf housing.tgz可以解压文件并提取CSV文件,但是最好创建一个小的函数来完成它。如果数据定期发生变化,这是非常有用的,因为它允许您编写一个小的脚本,当您需要获取最新数据时,您可以运行它(或者您可以设置一个预定的工作,定期自动地执行这些数据)。如果需要在多台计算机上安装数据集,那么自动获取数据的过程也是非常有用的。

这里是获取数据的函数:

import os
import tarfile
from six.moves import urllib
DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml/master/"
HOUSING_PATH = "datasets/housing"
HOUSING_URL = DOWNLOAD_ROOT + HOUSING_PATH + "/housing.tgz"
def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):
    if not os.path.isdir(housing_path):
        os.makedirs(housing_path)
    tgz_path = os.path.join(housing_path, "housing.tgz")
    urllib.request.urlretrieve(housing_url, tgz_path)
    housing_tgz = tarfile.open(tgz_path)
    housing_tgz.extractall(path=housing_path)
    housing_tgz.close()

现在,当您调用fetch_housing_data()时,它在您的工作空间中创建一个datasets/housing目录,下载housing.tgz文件,并从这个目录下提取housing.csv。

现在让我们用Pandas来装载数据。同样,您应该编写一个小函数来加载数据:

import pandas as pd
def load_housing_data(housing_path=HOUSING_PATH):
    csv_path = os.path.join(housing_path, "housing.csv")
    return pd.read_csv(csv_path)

这个函数返回一个包含所有数据的Pandas的DataFrame对象。

results matching ""

    No results matching ""