zarrwhals
| Package | |
| CI/CD | |
| Docs & Tools |
Dataframe-agnostic Zarr storage powered by Narwhals
Overview
Zarrwhals provides a simple API for storing DataFrames in Zarr format, using Narwhals for DataFrame interoperability. Inspired by AnnData's approach to storing obs/var DataFrames as Zarr Stores.
Quick Start
import pandas as pd
import zarrwhals as zw
# Create a DataFrame
df = pd.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"value": [10.5, 20.3, 30.1],
"category": pd.Categorical(["A", "B", "A"])
})
# Write to Zarr
zw.to_zarr(df, "data.zarr")
# Read back
df_loaded = zw.from_zarr("data.zarr")
With Polars
import polars as pl
import zarrwhals as zw
# Write polars DataFrame
df_pl = pl.DataFrame({
"a": [1, 2, 3],
"b": ["x", "y", "z"]
})
zw.to_zarr(df_pl, "data.zarr")
# Read as pandas
df_pd = zw.from_zarr("data.zarr", backend="pandas")
# Or read back as polars
df_pl2 = zw.from_zarr("data.zarr", backend="polars")
Getting started
Please refer to the documentation, in particular, the API documentation.
Installation
You need to have Python 3.11 or newer installed on your system. If you don't have Python installed, we recommend installing uv.
There are several alternative options to install zarrwhals:
- Install the latest development version:
pip install git+https://github.com/srivarra/zarrwhals.git@main
Release notes
See the changelog.
Contact
For questions and help requests, you can reach out in the scverse discourse. If you found a bug, please use the issue tracker.
Citation
t.b.a
Metadata
Release files for zarrwhals 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zarrwhals-0.0.1.tar.gz | 30.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zarrwhals-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 86.7 kB
Release files / zarrwhals-0.0.1.tar.gz
| Download URL | zarrwhals-0.0.1.tar.gz |
|---|---|
| Size | 30.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c73abcb10199e2e17705fb376236b4b3824f6ea8836839de6b68c70a97a52fd9
|
|
BLAKE2b-256 checksum How to use checksums |
9575dd95e87ea34fc27dd85d978a1fc145fead85a8d3d8bc027c5b37f58f913c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 1, 2025.
Transparency logRelease files / zarrwhals-0.0.1-py3-none-any.whl
| Download URL | zarrwhals-0.0.1-py3-none-any.whl |
|---|---|
| Size | 56.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1cc34fc90814b047254a5b2aeb9e1f2d6bae935a91297675ec0c059001636b2
|
|
BLAKE2b-256 checksum How to use checksums |
b737d4f7f4911d79ab821df455bf756dd57c00f3523b6b0fbdbed000d0581c9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 1, 2025.
Transparency log