Datasets documentation
테이블 데이터 로드
테이블 데이터 로드
테이블 데이터셋은 행과 열로 저장된 데이터를 설명하는 일반적인 데이터셋으로, 행은 예시(example)를, 열은 특징(feature, 연속형 또는 범주형)을 나타냅니다. 이러한 데이터셋은 일반적으로 CSV 파일, Pandas DataFrame, 데이터베이스 테이블에 저장됩니다. 이 가이드에서는 다음에서 테이블 데이터셋을 로드하고 생성하는 방법을 보여줍니다:
- CSV 파일
- Pandas DataFrames
- HDF5 파일
- 데이터베이스
CSV 파일
🤗 Datasets는 load_dataset() 메서드에서 범용 csv dataset 빌더 이름을 지정하여 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 파일을 train 및 test split에 매핑할 수도 있습니다:
>>> 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 DataFrames
🤗 Datasets는 from_pandas() 메서드를 사용하여 Pandas DataFrames에서 데이터셋을 로드하는 것도 지원합니다:
>>> 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로 설정됩니다.
HDF5 파일
HDF5 파일은 과학 계산 및 기계 학습에서 대량의 수치 데이터를 저장하는 데 일반적으로 사용됩니다. 🤗 Datasets로 HDF5 파일을 로드하는 방법은 CSV 파일을 로드하는 것과 유사합니다:
>>> from datasets import load_dataset
>>> dataset = load_dataset("hdf5", data_files="data.h5")HDF5 로더는 파일이 “테이블” 구조, 즉 파일 내 모든 데이터셋이 첫 번째 차원에서 (같은 수의) 행을 가질 것이라고 가정한다는 점에 유의하세요.
데이터베이스
데이터베이스에 저장된 데이터셋은 일반적으로 SQL 쿼리로 접근합니다. 🤗 Datasets를 사용하면 데이터베이스에 연결하여 필요한 데이터를 쿼리하고 이를 데이터셋으로 만들 수 있습니다. 그런 다음 🤗 Datasets의 모든 처리 기능을 사용하여 데이터셋을 학습에 맞게 준비할 수 있습니다.
SQLite
SQLite는 빠르고 설정이 간편한 소형 경량 데이터베이스입니다. 기존 데이터베이스를 사용해도 되고, 처음부터 시작하는 것을 따라 해도 됩니다.
이 Covid-19 데이터를 사용하여 New York Times의 빠른 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 문자열은 데이터베이스 방언별로 다르므로, 사용 중인 데이터베이스에 해당하는 Database URLs을 확인하십시오.
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
})이후 filter()와 같은 🤗 Datasets의 모든 처리 기능을 사용할 수 있습니다. 예를 들어:
>>> 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
})이후 filter()와 같은 🤗 Datasets의 모든 처리 기능을 사용할 수 있습니다. 예를 들어:
>>> ds.filter(lambda x: x["cases"] > 10000)PostgreSQL
PostgreSQL 데이터베이스에서 데이터셋을 연결하고 로드할 수도 있지만, 해당 예제는 노트북에서만 실행되도록 설계되어 있어 문서에서는 직접 시연하지 않습니다. 대신, 이 노트북에서 PostgreSQL 서버를 설치하고 설정하는 방법을 확인해 보세요!
PostgreSQL 데이터베이스를 설정한 후, from_sql() 메서드를 사용하여 테이블이나 쿼리에서 데이터셋을 로드할 수 있습니다.
Update on GitHub