Two great tastes that taste great together.
Use RedPanda to add simple pandas integration into your declarative models.
bash
pip install redpanda
Create a session from a SQLAlchemy engine:
```python import redpanda
engine = redpanda.create_engine("sqlite://")
Session = redpanda.orm.sessionmaker(bind=engine) session = Session()
```
Use the frame()
method of RedPanda queries to return a DataFrame representation of the results instead of a collection of models.
```python query = session.query(MyModel)
query.frame()
```
The frame()
method that wraps the pandas.read_sql()
function into a dialect-agnostic class-method for declarative SQLAlchemy models and can accept the same keyword arguments as pandas.read_sql()
:
```python query = session.query(MyModel).filter_by(my_attr="my_val")
query.frame(index_col="time") ```
Additionally, a within()
method is added to SQLAlchemy's InstrumentedAttribute class that accepts a pandas Index object:
python
index = pandas.period_range("2016-11-01", "2016-11-30", freq="W")
query = session.query(MyModel).filter(MyModel.timestamp.within(index))
Python 3.10 support
Support for SQLAlchemy ~> 1.4 Support Python 3.7+
Support for Python 3.9
Require SQLAlchemy >= 1.3.0
Project setup updates
python pandas sqlalchemy