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

2024-04-20 08:41:19 发布

您现在位置:Python中文网/ 问答频道 /正文

对这个问题的任何帮助都将不胜感激。

所以基本上我想对我的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数据结构放在一起。


Tags: 数据结构pandassqlascreatesomeengineint
3条回答

编辑:2015年3月

如下面所述,pandas现在使用SQLAlchemy同时读取(read_sql)和插入(to_sql)数据库。下面应该有用

import pandas as pd

df = pd.read_sql(sql, cnxn)

上一个答案: 从asimilar question通过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()

如果您使用的是SQLAlchemy的ORM而不是表达式语言,那么您可能会发现自己想要将类型为sqlalchemy.orm.query.Query的对象转换为Pandas数据帧。

最干净的方法是从查询的statement属性获取生成的SQL,然后使用pandas的read_sql()方法执行它。E、 例如,从名为query的查询对象开始:

df = pd.read_sql(query.statement, query.session.bind)

下面是最短的代码:

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

你可以像保罗的回答那样,更喜欢分析这些类型。

相关问题 更多 >