我一直在寻找我的问题的答案,但没有找到明确的答案。我是python,mysql和数据科学的新手,所以任何建议都赞赏为
我希望能做的是:
下面的伪代码概括地说明了我希望能做什么。
我的问题是:
如何将quandl数据存储在MySQL中?
如何从MySQL检索数据?我是否将其存储到列表中并使用statsmodels?
tickers = [AAPL, FB, GOOG, YHOO, XRAY, CSCO]
qCodes = [x + 'WIKI/' for x in tickers]
for i in range(0, len(qCodes)):
ADD TO MYSQLDB->Quandl.get(qCodes[i], collapse='daily', start_date=start, end_date=end)
for x in range(0, len(qCodes)-1):
for y in range(x+1, len(qCodes)):
//GET FROM MYSQLDB-> x, y
//clean(x,y)
//normalize(x,y)
//write to csv file->(regression(x,y))
答案 0 :(得分:2)
Python中有一个名为MySQLdb
的好库,它可以帮助您与MySQL数据库进行交互。因此,为了成功执行以下操作,您必须启动python shell并启动MySQL shell。
如何将quandl数据存储在MySQL中?
import MySQLdb
#Setting up connection
db = MySQLdb.connect("localhost", user_name, password, db_name)
cursor = db.cursor()
#Inserting records into the employee table
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES('Steven', "Karpinski", "50", "M", "43290")"""
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
我是为自定义值做的。因此,对于quandl数据,以类似的方式创建模式,并通过执行循环来存储它们。
如何从MySQL检索数据?我是否将其存储到列表中并使用statsmodels?
对于数据检索,执行以下命令,类似于上面的命令。
sql2 = """SELECT * FROM EMPLOYEE;
"""
try:
cursor.execute(sql2)
db.commit()
except:
db.rollback()
result = cursor.fetchall()
result
变量现在包含sql2
变量内的查询结果,并且它是元组的形式。
因此,现在您可以将这些元组转换为您选择的数据结构。
答案 1 :(得分:1)
Quandl有一个python包,使得与网站的交互变得微不足道。
来自Quandl' python page:
import Quandl
mydata = Quandl.get("WIKI/AAPL")
默认情况下,Quandl的软件包会返回一个pandas数据帧。您可以根据需要使用Pandas来操作/清理/规范化数据,并使用Pandas将数据直接上传到sql database:
import sqlalchemy as sql
engine = sql.create_engine('mysql://name:blah@location/testdb')
mydata.to_sql('db_table_name', engine, if_exists='append')
要从数据库中恢复数据,您还可以使用Pandas:
import pandas as pd
import sqlalchemy as sql
engine = sql.create_engine('mysql://name:blah@location/testdb')
query = sql.text('''select * from quandltable''')
mydata = pd.read_sql_query(engine, query)
使用statsmodels运行分析后,您可以使用pandas' df.to_csv()
方法或numpy的savetxt()
函数。 (对不起,我无法发布这些功能的链接;我还没有足够的声誉!)