Datasets documentation
Carregar dados tabulares
Carregar dados tabulares
Um dataset tabular é um dataset genérico usado para descrever qualquer dado armazenado em linhas e colunas, onde as linhas representam um exemplo e as colunas representam um recurso (pode ser contínuo ou categórico). Esses datasets são comumente armazenados em arquivos CSV, DataFrames do Pandas e em tabelas de banco de dados. Este guia mostrará como carregar e criar um dataset tabular a partir de:
- Arquivos CSV
- DataFrames do Pandas
- Arquivos HDF5
- Bancos de dados
Arquivos CSV
🤗 O Datasets pode ler arquivos CSV especificando o nome genérico do construtor de datasets csv no método load_dataset(). Para carregar mais de um arquivo CSV, passe-os como uma lista para o parâmetro 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"])Você também pode mapear arquivos CSV específicos para as divisões de treino e teste:
>>> dataset = load_dataset("csv", data_files={"train": ["my_train_file_1.csv", "my_train_file_2.csv"], "test": "my_test_file.csv"})Para carregar arquivos CSV remotos, passe as URLs em vez disso:
>>> 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"})Para carregar arquivos CSV compactados:
>>> url = "https://domain.org/train_data.zip"
>>> data_files = {"train": url}
>>> dataset = load_dataset("csv", data_files=data_files)DataFrames do Pandas
🤗 O Datasets também suporta o carregamento de datasets a partir de DataFrames do Pandas com o método 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)Use o parâmetro splits para especificar o nome do split do dataset:
>>> train_ds = Dataset.from_pandas(train_df, split="train")
>>> test_ds = Dataset.from_pandas(test_df, split="test")Se o conjunto de dados não parecer como esperado, você deve especificar explicitamente os recursos do seu conjunto de dados. Um pandas.Series nem sempre carrega informações suficientes para que o Arrow infira automaticamente um tipo de dados. Por exemplo, se um DataFrame tiver comprimento 0 ou se a Series contiver apenas objetos None/NaN, o tipo é definido como null.
Arquivos HDF5
Arquivos HDF5 são comumente usados para armazenar grandes quantidades de dados numéricos em computação científica e aprendizado de máquina. Carregar arquivos HDF5 com 🤗 Datasets é semelhante a carregar arquivos CSV:
>>> from datasets import load_dataset
>>> dataset = load_dataset("hdf5", data_files="data.h5")Observe que o carregador HDF5 pressupõe que o arquivo tenha uma estrutura “tabular”, ou seja, que todos os conjuntos de dados no arquivo tenham (o mesmo número de) linhas em sua primeira dimensão.
Bancos de dados
Datasets armazenados em bancos de dados são tipicamente acessados com consultas SQL. Com o 🤗 Datasets, você pode se conectar a um banco de dados, consultar os dados de que precisa e criar um dataset a partir deles. Em seguida, você pode usar todos os recursos de processamento do 🤗 Datasets para preparar seu dataset para o treinamento.
SQLite
SQLite é um banco de dados pequeno e leve, rápido e fácil de configurar. Você pode usar um banco de dados existente, se preferir, ou seguir o tutorial e começar do zero.
Comece criando um banco de dados SQLite rápido com estes dados da Covid-19 do 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")Isso cria uma tabela states no banco de dados us_covid_data.db, que agora pode ser carregada em um dataset.
Para se conectar ao banco de dados, você precisará da string URI que identifica seu banco de dados. Conectar-se a um banco de dados com uma URI faz com que o dataset retornado seja armazenado em cache. A string URI difere para cada dialeto de banco de dados, portanto, certifique-se de verificar as URLs de banco de dados para o banco de dados que você está usando.
Para o SQLite, é:
>>> uri = "sqlite:///us_covid_data.db"Carregue a tabela passando o nome da tabela e o URI para from_sql():
>>> from datasets import Dataset
>>> ds = Dataset.from_sql("states", uri)
>>> ds
Dataset({
features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
num_rows: 54382
})Em seguida, você pode usar todos os recursos de processamento do 🤗 Datasets, como filter(), por exemplo:
>>> ds.filter(lambda x: x["state"] == "California")Você também pode carregar um dataset a partir de uma consulta SQL em vez de uma tabela inteira, o que é útil para consultar e unir várias tabelas.
Carregue o conjunto de dados passando sua consulta e URI para 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
})Em seguida, você pode usar todos os recursos de processamento do 🤗 Datasets, como filter(), por exemplo:
>>> ds.filter(lambda x: x["cases"] > 10000)PostgreSQL
Você também pode conectar e carregar um dataset de um banco de dados PostgreSQL, no entanto, não demonstraremos diretamente como fazer isso na documentação, pois o exemplo foi criado apenas para ser executado em um notebook. Em vez disso, veja como instalar e configurar um servidor PostgreSQL neste notebook!
Depois de configurar seu banco de dados PostgreSQL, você pode usar o método from_sql() para carregar um conjunto de dados de uma tabela ou consulta.
Update on GitHub