任何有关此问题的帮助将不胜感激.
所以基本上我想对我的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数据结构.
我正在使用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)
谢谢!
我有一个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) 我试图确定从 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)