peewee查询数据库返回数据如何快速高效转Dataframe的方法,求大家指点
找到方法了
- BaseDatabase 增加接口
def query_dataframe(self, symbol: str, exchange: Exchange, interval: Interval): pass
- 实现类中添加pandas
import pandas as pd
方法实现
def query_dataframe(self, symbol: str, exchange: Exchange, interval: Interval): s: ModelSelect = DbBarOverview.select().where( (DbBarOverview.symbol == symbol) & (DbBarOverview.exchange == exchange.value) & ( DbBarOverview.interval == interval.value)) # print(s.sql()) overviews: List[BarOverview] = [] for overview in s: overview.exchange = Exchange(overview.exchange) overview.interval = Interval(overview.interval) overviews.append(overview) if len(overviews) < 1: return None code = overviews[0] ss: ModelSelect = ( DbBarData.select().where( (DbBarData.symbol == symbol) & (DbBarData.exchange == exchange.value) & (DbBarData.interval == interval.value) & (DbBarData.datetime >= code.start) & (DbBarData.datetime <= code.end) ).order_by(DbBarData.datetime) ) sqlpm = ss.sql() df = pd.read_sql(sqlpm[0], db.connection(), params=sqlpm[1]) return df