qpd
Query Pandas Using SQL
Decision gist · record as of 2026-08-14
Yes, if you need to run SQL on Pandas, Dask, or Ray and can tolerate an abandoned package. The low install friction and permissive license make it a low-risk experiment. However, do not rely on it for production workloads without testing thoroughly against your current dependency versions—no updates have been released since 2023-07-12, so compatibility with newer pandas, Dask, Ray, or Python versions is not guaranteed.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.7; runtime dependencies (pandas, triad, adagio, antlr4-python3-runtime) must be installed.
- Low install friction with a pure-Python wheel.
- Maintenance is abandoned—the package has not been updated since 2023-07-12 (1129 days ago), so expect no bug fixes or compatibility updates for newer Python or dependency versions.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 is permissive and places no restrictions on commercial or private use, though you must retain license notices and disclose any modifications you distribute.
last release 2023-07-12 (1129 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 350,688 downloads/mo, #7,329 on PyPI
Alternatives
Verify before relying
pip install qpd
import qpd
# Run SQL on pandas, Dask, or Ray backends via qpd's submodules- Whether the package remains compatible with current versions of pandas, Dask, Ray, and Modin given its abandoned status.
- Whether SQL feature coverage has expanded beyond SELECT statements since version 0.4.4.
- Performance characteristics on large datasets or complex queries compared to direct backend SQL engines.
- Specific API entry points and usage patterns for each backend (Pandas, Dask, Ray).
What it is and what it does
QPD is a SQL-to-pandas translator that lets you write SQL SELECT queries and execute them on multiple dataframe backends—Pandas, Dask, and Ray (via Modin)—while guaranteeing consistent results across all of them. Rather than converting dataframes to SQLite, running SQL, and converting back, QPD directly translates SQL into the native operations of each backend, which can be faster. It prioritizes correctness and consistency: for example, it follows SQL semantics for NULL handling in GROUP BY rather than the default pandas behavior of dropping null groups.
The package depends on pandas, triad, adagio, and antlr4-python3-runtime. It supports Python 3.7 through 3.10 and is classified as production-stable. However, it has been abandoned since 2023-07-12 with no updates since then, so it will not receive bug fixes or compatibility patches for newer versions of its dependencies or Python itself.
Use it for
- Run the same SQL query on Pandas, Dask, or Ray without rewriting logic for each backend.
- Migrate SQL workloads from SQLite or other databases to distributed dataframe frameworks while keeping queries unchanged.
- Ensure consistent GROUP BY and aggregation behavior across backends by using SQL semantics instead of framework defaults.
- Prototype data transformations in SQL before scaling them to Dask or Ray clusters.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to run SQL on Pandas, Dask, or Ray and can tolerate an abandoned package.
The low install friction and permissive license make it a low-risk experiment. However, do not rely on it for production workloads without testing thoroughly against your current dependency versions—no updates have been released since 2023-07-12, so compatibility with newer pandas, Dask, Ray, or Python versions is not guaranteed.
Install
qpd on PyPI
Before you install
Low install friction with a pure-Python wheel. Maintenance is abandoned—the package has not been updated since 2023-07-12 (1129 days ago), so expect no bug fixes or compatibility updates for newer Python or dependency versions.
Requires Python >=3.7; runtime dependencies (pandas, triad, adagio, antlr4-python3-runtime) must be installed.
License in practice
Apache-2.0 is permissive and places no restrictions on commercial or private use, though you must retain license notices and disclose any modifications you distribute.
Quickstart
pip install qpd
import qpd
# Run SQL on pandas, Dask, or Ray backends via qpd's submodules
Verify before relying
- Whether the package remains compatible with current versions of pandas, Dask, Ray, and Modin given its abandoned status.
- Whether SQL feature coverage has expanded beyond SELECT statements since version 0.4.4.
- Performance characteristics on large datasets or complex queries compared to direct backend SQL engines.
- Specific API entry points and usage patterns for each backend (Pandas, Dask, Ray).
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagespandastriadadagioantlr4-python3-runtime |
| Maintenance | Abandoned 1,129 days since the last release |
| First released | |
| Downloads | 350,688 / month, #7,329 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules |
Evidence: qpd-0.4.4-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “sql to pandas operations”
- qpdQPD translates SQL SELECT statements into pandas-like operations,…
- pandasqlpandasql lets you query pandas DataFrames using SQL syntax instead of…
- bcpandasWraps SQL Server's BCP utility to transfer data between pandas…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also dask-expr · pandasql · pangres · gw-dsl-parser · triad · bcpandas · pandas-td · datacompy · ibis-framework · dirsql