The kagglehub.dataset_load() function loads Kaggle dataset files directly into Python objects using specific adapters.
Required Dependencies:
KaggleDatasetAdapter.PANDAS: pip install kagglehub[pandas-datasets]KaggleDatasetAdapter.HUGGING_FACE: pip install kagglehub[hf-datasets]KaggleDatasetAdapter.POLARS: pip install kagglehub[polars-datasets]
Adapters Overview
1. KaggleDatasetAdapter.PANDAS
Maps file extensions to pandas.read_* methods (e.g., .csv $\rightarrow$ read_csv, .parquet $\rightarrow$ read_parquet). Supports pandas_kwargs for passing arguments directly to pandas.
2. KaggleDatasetAdapter.HUGGING_FACE
Returns a Hugging Face Dataset object. It uses Dataset.from_pandas internally. Supports pandas_kwargs and hf_kwargs (passed to from_pandas).
3. KaggleDatasetAdapter.POLARS
Returns a polars.LazyFrame by default (using scan_* methods) or a polars.DataFrame if polars_frame_type=PolarsFrameType.DATA_FRAME is specified. Supports polars_kwargs.
import kagglehub
from kagglehub import KaggleDatasetAdapter, PolarsFrameType
# Load as Pandas DataFrame
df = kagglehub.dataset_load(
KaggleDatasetAdapter.PANDAS,
"unsdsn/world-happiness/versions/1",
"2016.csv",
pandas_kwargs={"columns": ["year", "score"]}
)
# Load as Hugging Face Dataset
hf_dataset = kagglehub.dataset_load(
KaggleDatasetAdapter.HUGGING_FACE,
"robikscube/textocr-text-extraction-from-images-dataset",
"annot.parquet"
)
# Load as Polars LazyFrame
lf = kagglehub.dataset_load(
KaggleDatasetAdapter.POLARS,
"unsdsn/world-happiness/versions/1",
"2016.csv"
)
# To get a DataFrame instead of a LazyFrame:
df_polars = kagglehub.dataset_load(
KaggleDatasetAdapter.POLARS,
"robikscube/textocr-text-extraction-from-images-dataset",
"annot.parquet",
polars_frame_type=PolarsFrameType.DATA_FRAME
)