peewee查询数据库返回数据如何快速高效转Dataframe的方法,求大家指点

找到方法了

  1. BaseDatabase 增加接口
def query_dataframe(self, symbol: str, exchange: Exchange, interval: Interval):
    pass
  1. 实现类中添加pandas
import pandas as pd
  1. 方法实现
    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