相关疑难解决方法(0)

如何将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)
Run Code Online (Sandbox Code Playgroud)

所以我想知道我的变量"resoverall"的格式/数据类型是什么,以及如何使用PANDAS数据结构.

python mysql data-structures pandas

97
推荐指数
9
解决办法
19万
查看次数

将MySQL结果集转换为NumPy数组的最有效方法是什么?

我正在使用MySQLdb和Python.我有一些基本的查询,例如:

c=db.cursor()
c.execute("SELECT id, rating from video")
results = c.fetchall()
Run Code Online (Sandbox Code Playgroud)

我需要"结果"作为NumPy数组,而且我希望我的内存消耗更经济.似乎逐行复制数据会非常低效(需要双倍的内存).有没有更好的方法将MySQLdb查询结果转换为NumPy数组格式?

我想要使​​用NumPy数组格式的原因是因为我希望能够轻松地对数据进行切片和切块,并且在这方面看起来python对于多维数组似乎并不友好.

e.g. b = a[a[:,2]==1] 
Run Code Online (Sandbox Code Playgroud)

谢谢!

python etl numpy mysql-python

14
推荐指数
3
解决办法
2万
查看次数

Python MySQLdb返回datetime.date和decimal

我有一个MySQL查询,如:

SELECT mydate, countryCode, qtySold from sales order mydate, countryCode
Run Code Online (Sandbox Code Playgroud)

这将返回元组的元组,其值如下:

((datetime.date(2011, 1, 3), 'PR', Decimal('1')), (datetime.date(2011, 1, 31), 'MX', Decimal('1')))
Run Code Online (Sandbox Code Playgroud)

当我尝试使用循环打印时,它打印完美:

2011-1-3, PR, 1
2011-1-31, MX, 1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试返回此值时,它返回为

datetime.date(2011, 1, 3), 'PR', Decimal('1')
Run Code Online (Sandbox Code Playgroud)

有没有办法可以获得普通数据,以便我可以将其传递给UI进行处理?通过正常数据我的意思是:

[['2011-1-03', 'PR', 1], ...]
Run Code Online (Sandbox Code Playgroud)

python mysql-python

12
推荐指数
2
解决办法
2万
查看次数

从 MySQL 中获取表到 Pandas 的最快方法

我试图确定从 MySQL 获取数据到 Pandas 的最快方法。到目前为止,我已经尝试了三种不同的方法:

方法 1:使用 pymysql 并修改字段类型(灵感来自Fastest way to load numeric data into python/pandas/numpy array from MySQL

import pymysql 
from pymysql.converters import conversions
from pymysql.constants import FIELD_TYPE
conversions[FIELD_TYPE.DECIMAL] = float
conversions[FIELD_TYPE.NEWDECIMAL] = float
conn = pymysql.connect(host = host, port = port, user= user, passwd= passwd, db= db)
Run Code Online (Sandbox Code Playgroud)

方法二:使用MySqldb

import MySQLdb
from MySQLdb.converters import conversions
from MySQLdb.constants import FIELD_TYPE
conversions[FIELD_TYPE.DECIMAL] = float
conversions[FIELD_TYPE.NEWDECIMAL] = float
conn = MySQLdb.connect(host = host, port = port, user= user, passwd= passwd, …
Run Code Online (Sandbox Code Playgroud)

python mysql pandas

6
推荐指数
1
解决办法
2974
查看次数

标签 统计

python ×4

mysql ×2

mysql-python ×2

pandas ×2

data-structures ×1

etl ×1

numpy ×1