Skip to main content

pandas-arango

pandas-arango is a synchronous connector for moving data between ArangoDB documents and pandas DataFrames. It supports AQL and collection reads, chunked results, and batched insert, update, replace, and upsert operations.

Requirements

  • Python 3.11 or newer
  • pandas 2.2 or newer
  • python-arango 8.0 or newer
  • A running ArangoDB server

Install it with:

python -m pip install pandas-arango

Quickstart

Connect with python-arango, read documents into a DataFrame, use pandas, and write the result to another collection:

from arango import ArangoClient
from pandas_arango import read_collection, write_collection

client = ArangoClient(hosts="http://127.0.0.1:8529")
database = client.db("my_database", username="root", password="passwd")

users = read_collection(
    database,
    "users",
    columns=["_key", "name", "active"],
)
active_users = users.loc[users["active"]]

result = write_collection(
    active_users,
    database,
    "active_users",
    mode="upsert",
    create_collection=True,
)
print(result.written_count)

Use read_aql for custom queries and pass chunksize for large results.

Advanced example

Converters let you store Python values that are not JSON-compatible by default. This example preserves decimal prices as strings, converts UUIDs to document keys, omits missing fields, and reads matching documents in chunks:

from decimal import Decimal
from uuid import uuid4

import pandas as pd
from pandas_arango import read_aql, write_collection

measurements = pd.DataFrame(
    [
        {
            "measurement_id": uuid4(),
            "price": Decimal("19.95"),
            "captured_at": pd.Timestamp.now(tz="UTC"),
            "comment": pd.NA,
        }
    ]
)

write_collection(
    measurements,
    database,
    "measurements",
    key_column="measurement_id",
    create_collection=True,
    null_policy="omit",
    converters={"measurement_id": str, "price": str},
)

chunks = read_aql(
    database,
    """
    FOR measurement IN measurements
        FILTER TO_NUMBER(measurement.price) >= @minimum_price
        RETURN measurement
    """,
    bind_vars={"minimum_price": 10},
    chunksize=10_000,
)
for chunk in chunks:
    print(chunk[["_key", "price", "captured_at"]])

Constraints

  • Nested objects and arrays remain values in DataFrame cells by default.
  • AQL projection is preferred; client-side flattening is opt-in.
  • Writes accept JSON-compatible values. Other values require converters.
  • Timezone-naive timestamps are rejected instead of assuming a timezone.

More information

Release files for pandas-arango 0.1.2

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

Source distribution (sdist)

Source distribution for pandas-arango 0.1.2
File Size Uploaded
pandas_arango-0.1.2.tar.gz 22.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pandas-arango 0.1.2
File Interpreter ABI Platform
pandas_arango-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 36.3 kB

Release files / pandas_arango-0.1.2.tar.gz

Download URL pandas_arango-0.1.2.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
836720c78ae3d886989dd2f39f61f6fa96e13f33bffc3e456862d376fc0bfb40
BLAKE2b-256 checksum
How to use checksums
5687e40bd12039f8d9e7d0b021c575a3b6539d25af89ef0fb9c81276095999a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 25, 2026.

Transparency log

Release files / pandas_arango-0.1.2-py3-none-any.whl

Download URL pandas_arango-0.1.2-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a5c955a7757185a18ceac544f83b03ee5834b931d8e479d56bdf74269c307e9
BLAKE2b-256 checksum
How to use checksums
75b78ff8eede74814b2999a79308bb4424fbd6b1f60e7f4256bd3fd5716cffca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

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