Skip to main content

loadfile

Load tabular data from any storage backend (Google Cloud Storage, AWS S3, Azure, local disk, …) and any common format into a pandas DataFrame with a single call.

from loadfile import load

df = load("gs://my-bucket/data.parquet")
df = load("data/local.csv")
df = load("s3://bucket/export.json", storage_options={"anon": True})

The storage backend is chosen automatically from the URL prefix (powered by fsspec). The file format is detected from the extension (or forced with format=).

The function is also exported as load_data (an alias of load) for compatibility with the original helper.

Install

pip install loadfile            # core: pandas + fsspec + pyarrow (local files)
pip install "loadfile[gcs]"     # Google Cloud Storage (gcsfs)
pip install "loadfile[s3]"      # AWS S3 (s3fs)
pip install "loadfile[azure]"   # Azure (adlfs)
pip install "loadfile[excel]"   # .xlsx support (openpyxl)
pip install "loadfile[calamine]"# fast Rust Excel engine for fast=True
pip install "loadfile[all]"     # everything

Supported formats

Format Extensions
Parquet .parquet
CSV .csv (and .csv.gz, .csv.bz2…)
JSON / JSON Lines .json, .jsonl, .ndjson
Excel .xlsx, .xls
Feather .feather
ZIP .zip (wrapping any of the above)

Usage

Faster reads with fast=True

df = load("big.csv")              # default: plain pandas (NumPy dtypes)
df = load("big.csv", fast=True)   # Arrow-accelerated: much faster, less memory

fast=True delegates to pyarrow's multi-threaded C++ parser for CSV and JSON-lines and returns Arrow-backed columns (dtype_backend="pyarrow") for every format — typically several times faster with a fraction of the memory, and no slow object dtype. The default stays plain pandas for backwards compatibility. Any explicit reader kwargs you pass override the fast defaults.

Installing loadfile[calamine] (or [all]) additionally enables the fast Rust calamine engine for Excel under fast=True.

Format override and reader options

Any extra keyword arguments are forwarded to the underlying pandas reader:

load("export.tsv", format="csv", sep="\t")
load("book.xlsx", sheet_name="Sheet2")
load("big.csv", usecols=["id", "value"])

Credentials

Pass backend options via storage_options (forwarded to fsspec):

load("gs://bucket/data.parquet", storage_options={"token": "/path/key.json"})
load("s3://bucket/data.csv", storage_options={"key": "...", "secret": "..."})

ZIP archives

A .zip may contain any mix of supported formats. Each member is loaded with the reader matching its own extension.

# Single data file in the zip -> a DataFrame
df = load("archive.zip")

# Multiple data files -> a dict {member_name: DataFrame}
frames = load("archive.zip")               # {"a.csv": ..., "b.parquet": ...}

# Pick one member -> a DataFrame
df = load("archive.zip", filename="a.csv")

# Pick a subset -> a dict of just those members
frames = load("archive.zip", filename=["a.csv", "b.parquet"])

Non-data members (e.g. readme.txt) and nested zips are ignored. A zip with no supported files raises EmptyArchiveError; a missing requested member raises MemberNotFoundError.

Development

pip install -e ".[dev,all]"
pytest

License

MIT

Metadata

Release files for loadfile 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for loadfile 0.1.1
File Size Uploaded
loadfile-0.1.1.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for loadfile 0.1.1
File Interpreter ABI Platform
loadfile-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.6 kB

Release files / loadfile-0.1.1.tar.gz

Download URL loadfile-0.1.1.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
be271d38fd236bbf596db5fd4d2b88de2744b461b25c73786ceb09840b63bca5
BLAKE2b-256 checksum
How to use checksums
cb3b1b9491a2ecaca8b8d28675700445cfd810283da6f3edb6d4ecb9e99383df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 5, 2026.

Transparency log

Release files / loadfile-0.1.1-py3-none-any.whl

Download URL loadfile-0.1.1-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcf130b212d3934f2dec07929de5f00ddf51f8f99342c9a480204a15956d8c15
BLAKE2b-256 checksum
How to use checksums
8a4446ad98a15c3fc08e480bed25b3dc7c7cf5a5cd9ee122737ac87b520aec99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page