Datasets 文件
載入表格資料
並獲得增強的文件體驗
開始使用
載入表格資料
表格資料集是一種通用的資料集,用於描述儲存在行和列中的任何資料,其中行代表一個樣本,列代表一個特徵(可以是連續的或分類的)。這些資料集通常儲存在 CSV 檔案、Pandas DataFrame 和資料庫表中。本指南將向您展示如何從以下來源載入和建立表格資料集:
- CSV 檔案
- Pandas DataFrame
- 資料庫
CSV 檔案
🤗 Datasets 可以透過在 load_dataset() 方法中指定通用的 csv
資料集構建器名稱來讀取 CSV 檔案。要載入多個 CSV 檔案,請將它們作為列表傳遞給 data_files
引數
>>> from datasets import load_dataset
>>> dataset = load_dataset("csv", data_files="my_file.csv")
# load multiple CSV files
>>> dataset = load_dataset("csv", data_files=["my_file_1.csv", "my_file_2.csv", "my_file_3.csv"])
您還可以將特定的 CSV 檔案對映到訓練集和測試集
>>> dataset = load_dataset("csv", data_files={"train": ["my_train_file_1.csv", "my_train_file_2.csv"], "test": "my_test_file.csv"})
要載入遠端 CSV 檔案,請傳入 URL
>>> base_url = "https://huggingface.co/datasets/lhoestq/demo1/resolve/main/data/"
>>> dataset = load_dataset('csv', data_files={"train": base_url + "train.csv", "test": base_url + "test.csv"})
要載入壓縮的 CSV 檔案
>>> url = "https://domain.org/train_data.zip"
>>> data_files = {"train": url}
>>> dataset = load_dataset("csv", data_files=data_files)
Pandas DataFrame
🤗 Datasets 還支援使用 from_pandas() 方法從 Pandas DataFrame 載入資料集
>>> from datasets import Dataset
>>> import pandas as pd
# create a Pandas DataFrame
>>> df = pd.read_csv("https://huggingface.co/datasets/imodels/credit-card/raw/main/train.csv")
>>> df = pd.DataFrame(df)
# load Dataset from Pandas DataFrame
>>> dataset = Dataset.from_pandas(df)
使用 splits
引數來指定資料集分割的名稱
>>> train_ds = Dataset.from_pandas(train_df, split="train")
>>> test_ds = Dataset.from_pandas(test_df, split="test")
如果資料集看起來不符合預期,您應該顯式地指定您的資料集特徵。一個 pandas.Series 可能並不總能攜帶足夠的資訊供 Arrow 自動推斷資料型別。例如,如果 DataFrame 的長度為 0
或者 Series 只包含 None/NaN
物件,型別將被設定為 null
。
資料庫
儲存在資料庫中的資料集通常透過 SQL 查詢訪問。使用 🤗 Datasets,您可以連線到資料庫,查詢所需資料,並從中建立資料集。然後,您可以使用 🤗 Datasets 的所有處理功能來為訓練準備資料集。
SQLite
SQLite 是一個小型、輕量級的資料庫,速度快且易於設定。您可以使用現有的資料庫,也可以跟隨本指南從頭開始。
首先,使用《紐約時報》的這個新冠病毒資料快速建立一個 SQLite 資料庫
>>> import sqlite3
>>> import pandas as pd
>>> conn = sqlite3.connect("us_covid_data.db")
>>> df = pd.read_csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-states.csv")
>>> df.to_sql("states", conn, if_exists="replace")
這會在 `us_covid_data.db` 資料庫中建立一個 `states` 表,您現在可以將其載入到資料集中。
要連線到資料庫,您需要一個URI 字串來標識您的資料庫。使用 URI 連線資料庫會快取返回的資料集。URI 字串因資料庫方言而異,因此請務必檢視您所使用的資料庫的資料庫 URL。
對於 SQLite,它是
>>> uri = "sqlite:///us_covid_data.db"
透過將表名和 URI 傳遞給 from_sql() 來載入該表
>>> from datasets import Dataset
>>> ds = Dataset.from_sql("states", uri)
>>> ds
Dataset({
features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
num_rows: 54382
})
然後您可以使用 🤗 Datasets 的所有處理功能,例如 filter()
>>> ds.filter(lambda x: x["state"] == "California")
您還可以從 SQL 查詢而不是整個表中載入資料集,這對於查詢和連線多個表非常有用。
透過將您的查詢和 URI 傳遞給 from_sql() 來載入資料集
>>> from datasets import Dataset
>>> ds = Dataset.from_sql('SELECT * FROM states WHERE state="California";', uri)
>>> ds
Dataset({
features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
num_rows: 1019
})
然後您可以使用 🤗 Datasets 的所有處理功能,例如 filter()
>>> ds.filter(lambda x: x["cases"] > 10000)
PostgreSQL
您也可以連線並從 PostgreSQL 資料庫載入資料集,但我們不會在文件中直接演示如何操作,因為該示例僅用於在 notebook 中執行。相反,請在此 notebook 中檢視如何安裝和設定 PostgreSQL 伺服器!
設定好 PostgreSQL 資料庫後,您可以使用 from_sql() 方法從表或查詢中載入資料集。
< > 在 GitHub 上更新