dataframe_sql is a Python package that translates SQL syntax into operations on pandas DataFrames, a functionality which is not available in the central pandas package.
Installation
pip install dataframe_sql
Usage
In this simple example, a DataFrame is read in from a csv and then using the query function you can produce a new DataFrame from the sql query.
from pandas import read_csv
from dataframe_sql import register_temp_table, query
my_table = read_csv("some_file.csv")
register_temp_table(my_table, "my_table")
query("""select * from my_table""")
The package currently only supports pandas but there are plans to support dask, rapids, and modin in the future.
SQL Syntax
The SQL syntax for dataframe_sql is exactly the same as the syntax in sql_to_ibis, its underlying package.
You can find the full SQL syntax here
Why use dataframe_sql?
While there are other packages that accomplish the goal of using SQL with pandas DataFrames, all other packages such as pandasql actually use a database on the backend which defeats the purpose of using pandas to begin with. In the case of pandasql which uses SQLite, this can result in major performance bottlenecks. dataframe_sql actually performs native pandas operations in memory on DataFrames, which avoids conflicts that may arise from using external databases.
Release files for dataframe-sql 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dataframe_sql-0.4.0.tar.gz | 29.8 kB | Details |
Release files / dataframe_sql-0.4.0.tar.gz
| Download URL | dataframe_sql-0.4.0.tar.gz |
|---|---|
| Size | 29.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f5476e4bd2a6c9fddd7896e939ad7e6c76c54a80eea8c20396b3efe3255a44b
|
|
BLAKE2b-256 checksum How to use checksums |
167a9887946905d91bcf333404f8d57561a3628de681d91f429dcfc6d727b6be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
|