Datasets documentation
Cargar datos tabulares
Cargar datos tabulares
Un conjunto de datos tabular es un conjunto de datos genérico utilizado para describir cualquier dato almacenado en filas y columnas, donde las filas representan un ejemplo y las columnas representan una característica (puede ser continua o categórica). Estos conjuntos de datos se almacenan comúnmente en archivos CSV, DataFrames de Pandas y en tablas de base de datos. Esta guía te mostrará cómo cargar y crear un conjunto de datos tabular a partir de:
- Archivos CSV
- DataFrames de Pandas
- Archivos HDF5
- Bases de datos
Archivos CSV
🤗 Datasets puede leer archivos CSV especificando el nombre genérico de constructor de datasets csv en el método load_dataset(). Para cargar más de un archivo CSV, páselos como una lista al 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"])También puede mapear archivos CSV específicos a las divisiones de entrenamiento y prueba:
>>> dataset = load_dataset("csv", data_files={"train": ["my_train_file_1.csv", "my_train_file_2.csv"], "test": "my_test_file.csv"})Para cargar archivos CSV remotos, pase las URL en su lugar:
>>> 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 cargar archivos CSV comprimidos:
>>> url = "https://domain.org/train_data.zip"
>>> data_files = {"train": url}
>>> dataset = load_dataset("csv", data_files=data_files)DataFrames de Pandas
🤗 Datasets también permite cargar conjuntos de datos desde DataFrames de Pandas con el 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 el parámetro splits para especificar el nombre de la división del conjunto de datos:
>>> train_ds = Dataset.from_pandas(train_df, split="train")
>>> test_ds = Dataset.from_pandas(test_df, split="test")Si el conjunto de datos no se ve como se esperaba, debe especificar explícitamente las características de su conjunto de datos. Un pandas.Series no siempre contiene suficiente información para que Arrow infiera automáticamente un tipo de datos. Por ejemplo, si un DataFrame tiene una longitud de 0 o si la Serie solo contiene objetos None/NaN, el tipo se establece como null.
Archivos HDF5
Los archivos HDF5 se utilizan comúnmente para almacenar grandes cantidades de datos numéricos en computación científica y aprendizaje automático. Cargar archivos HDF5 con 🤗 Datasets es similar a cargar archivos CSV:
>>> from datasets import load_dataset
>>> dataset = load_dataset("hdf5", data_files="data.h5")Tenga en cuenta que el cargador de HDF5 asume que el archivo tiene una estructura “tabular”, es decir, que todos los conjuntos de datos del archivo tienen (el mismo número de) filas en su primera dimensión.
Bases de datos
Los conjuntos de datos almacenados en bases de datos suelen accederse mediante consultas SQL. Con 🤗 Datasets, puedes conectar a una base de datos, consultar los datos que necesitas y crear un conjunto de datos a partir de ellos. Después, puedes utilizar todas las funciones de procesamiento de 🤗 Datasets para preparar tu conjunto de datos para el entrenamiento.
SQLite
SQLite es una base de datos pequeña y ligera, rápida y fácil de configurar. Puedes usar una base de datos existente si lo deseas, o seguir los pasos y empezar desde cero.
Comience creando una base de datos SQLite rápida con estos datos de Covid-19 del 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")Esto crea una tabla states en la base de datos us_covid_data.db que ahora puedes cargar en un dataset.
Para conectar a la base de datos, necesitarás la cadena URI que identifica tu base de datos. Conectar a una base de datos mediante una URI almacena en caché el conjunto de datos devuelto. La cadena URI varía según el dialecto de la base de datos, así que asegúrate de consultar las URLs de base de datos correspondientes a la base de datos que estés utilizando.
Para SQLite, es:
>>> uri = "sqlite:///us_covid_data.db"Cargue la tabla pasando el nombre de la tabla y la URI a from_sql():
>>> from datasets import Dataset
>>> ds = Dataset.from_sql("states", uri)
>>> ds
Dataset({
features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
num_rows: 54382
})Luego puedes usar todas las funciones de procesamiento de 🤗 Datasets, por ejemplo filter():
>>> ds.filter(lambda x: x["state"] == "California")También puede cargar un conjunto de datos desde una consulta SQL en lugar de una tabla completa, lo cual es útil para consultar y unir varias tablas.
Cargue el conjunto de datos pasando su consulta y URI a 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
})Luego puedes usar todas las funciones de procesamiento de 🤗 Datasets, por ejemplo filter():
>>> ds.filter(lambda x: x["cases"] > 10000)PostgreSQL
También puedes conectar y cargar un conjunto de datos desde una base de datos PostgreSQL; sin embargo, no lo demostraremos directamente en la documentación porque el ejemplo solo está pensado para ejecutarse en un notebook. En su lugar, consulta cómo instalar y configurar un servidor PostgreSQL en este notebook.
Después de configurar tu base de datos PostgreSQL, puedes usar el método from_sql() para cargar un conjunto de datos desde una tabla o consulta.
Update on GitHub