如何将SQL查询结果转换为PANDAS数据结构?

11 浏览
0 Comments

如何将SQL查询结果转换为PANDAS数据结构?

任何关于这个问题的帮助都非常感激。

基本上,我想要运行一个查询到我的SQL数据库并将返回的数据存储为Pandas数据结构。

我附加了查询的代码。

我正在阅读Pandas的文档,但我有问题识别我的查询返回类型。

我尝试打印查询结果,但它没有给出任何有用的信息。

谢谢!

from sqlalchemy import create_engine
engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING')
connection2 = engine2.connect()
dataid = 1022
resoverall = connection2.execute("
    SELECT 
       sum(BLABLA) AS BLA,
       sum(BLABLABLA2) AS BLABLABLA2,
       sum(SOME_INT) AS SOME_INT,
       sum(SOME_INT2) AS SOME_INT2,
       100*sum(SOME_INT2)/sum(SOME_INT) AS ctr,
       sum(SOME_INT2)/sum(SOME_INT) AS cpc
    FROM daily_report_cooked
    WHERE campaign_id = '%s'",
    %dataid
)

所以我有点想了解变量“resoverall”的格式/数据类型以及如何将它与PANDAS数据结构配合使用。

admin 更改状态以发布 2023年5月21日
0
0 Comments

编辑:2015年3月

如下所述,pandas现在使用SQLAlchemy从数据库中读取(read_sql)和插入数据(to_sql)。以下内容应该可以使用

import pandas as pd
df = pd.read_sql(sql, cnxn)

以前的答案:
通过来自类似问题的mikebmassey的回答

import pyodbc
import pandas.io.sql as psql
cnxn = pyodbc.connect(connection_info) 
cursor = cnxn.cursor()
sql = "SELECT * FROM TABLE"
df = psql.frame_query(sql, cnxn)
cnxn.close()

0
0 Comments

这里是最简短的代码,可以完成这个任务:

from pandas import DataFrame
df = DataFrame(resoverall.fetchall())
df.columns = resoverall.keys()

你可以更高级一些,像Paul的回答一样解析类型。

0