Datasets documentation
Muat data tabular
Muat data tabular
Dataset tabular adalah dataset generik yang digunakan untuk menggambarkan data apa pun yang disimpan dalam baris dan kolom, di mana baris mewakili satu contoh dan kolom mewakili fitur (bisa kontinu atau kategorikal). Dataset ini umumnya disimpan dalam file CSV, Pandas DataFrames, dan tabel database. Panduan ini akan menunjukkan cara memuat dan membuat dataset tabular dari:
- File CSV
- Pandas DataFrames
- File HDF5
- Database
File CSV
🤗 Datasets dapat membaca file CSV dengan menentukan nama builder dataset generik csv di metode load_dataset(). Untuk memuat lebih dari satu file CSV, berikan file-file tersebut sebagai list ke parameter 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"])Anda juga dapat memetakan file CSV tertentu ke split train dan test:
>>> dataset = load_dataset("csv", data_files={"train": ["my_train_file_1.csv", "my_train_file_2.csv"], "test": "my_test_file.csv"})Untuk memuat file CSV jarak jauh, berikan URL-nya sebagai gantinya:
>>> 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"})Untuk memuat file CSV yang dikompresi:
>>> url = "https://domain.org/train_data.zip"
>>> data_files = {"train": url}
>>> dataset = load_dataset("csv", data_files=data_files)Pandas DataFrames
🤗 Datasets juga mendukung pemuatan dataset dari Pandas DataFrames dengan metode from_pandas():
>>> 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)Gunakan parameter splits untuk menentukan nama split dataset:
>>> train_ds = Dataset.from_pandas(train_df, split="train")
>>> test_ds = Dataset.from_pandas(test_df, split="test")Jika dataset tidak terlihat seperti yang diharapkan, Anda harus secara eksplisit menentukan fitur dataset Anda. Sebuah pandas.Series mungkin tidak selalu membawa informasi yang cukup bagi Arrow untuk secara otomatis menyimpulkan tipe data. Misalnya, jika DataFrame memiliki panjang 0 atau jika Series hanya berisi objek None/NaN, tipenya akan disetel ke null.
File HDF5
HDF5 file sering digunakan untuk menyimpan sejumlah besar data numerik dalam komputasi ilmiah dan machine learning. Memuat file HDF5 dengan 🤗 Datasets mirip dengan memuat file CSV:
>>> from datasets import load_dataset
>>> dataset = load_dataset("hdf5", data_files="data.h5")Perhatikan bahwa loader HDF5 mengasumsikan bahwa file memiliki struktur “tabular”, yaitu bahwa semua dataset dalam file memiliki (jumlah baris yang sama) pada dimensi pertamanya.
Database
Dataset yang disimpan dalam basis data biasanya diakses dengan kueri SQL. Dengan 🤗 Datasets, Anda dapat terhubung ke basis data, meminta data yang Anda butuhkan, dan membuat dataset darinya. Kemudian, Anda dapat menggunakan semua fitur pemrosesan 🤗 Datasets untuk menyiapkan dataset Anda untuk pelatihan.
SQLite
SQLite adalah database kecil dan ringan yang cepat serta mudah diinstal. Anda dapat menggunakan database yang sudah ada jika diinginkan, atau mengikuti panduan dan memulai dari awal.
Mulai dengan membuat database SQLite cepat menggunakan data Covid-19 ini dari New York Times:
>>> 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")Hal ini membuat tabel states di dalam database us_covid_data.db yang sekarang dapat Anda muat ke dalam dataset.
Untuk terhubung ke database, Anda memerlukan string URI yang mengidentifikasi database Anda. Menghubungkan ke database dengan URI akan meng-cache dataset yang dikembalikan. String URI berbeda untuk setiap dialek database, jadi pastikan untuk memeriksa Database URLs untuk database yang Anda gunakan.
Untuk SQLite, ini adalah:
>>> uri = "sqlite:///us_covid_data.db"Muat tabel dengan meneruskan nama tabel dan URI ke from_sql():
>>> from datasets import Dataset
>>> ds = Dataset.from_sql("states", uri)
>>> ds
Dataset({
features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
num_rows: 54382
})Lalu Anda dapat menggunakan semua fitur proses 🤗 Datasets seperti filter() sebagai contoh:
>>> ds.filter(lambda x: x["state"] == "California")Anda juga dapat memuat dataset dari kueri SQL alih-alih seluruh tabel, yang berguna untuk melakukan kueri dan penggabungan (join) beberapa tabel.
Muat dataset dengan meneruskan query dan URI Anda ke 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
})Lalu Anda dapat menggunakan semua fitur proses 🤗 Datasets seperti filter() sebagai contoh:
>>> ds.filter(lambda x: x["cases"] > 10000)PostgreSQL
Anda juga dapat menghubungkan dan memuat dataset dari database PostgreSQL, namun kami tidak akan mendemonstrasikannya secara langsung dalam dokumentasi karena contoh ini hanya dimaksudkan untuk dijalankan di notebook. Sebagai gantinya, lihat cara menginstal dan mengatur server PostgreSQL di notebook ini!
Setelah Anda menyiapkan database PostgreSQL, Anda dapat menggunakan metode from_sql() untuk memuat dataset dari tabel atau query.
Update on GitHub