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