您的位置:首页 > 编程语言 > Python开发

python连接数据库,tushare,Dataframe to sql

2016-04-20 16:25 579 查看
1、使用pip安装lxml,再安装pandas,再安装tushare。
可能出现的问题:

    (一).安装lxml的时候可能会出现相关模块无法编译的问题,unable to find vcvarsall.bat,此类情况可以找到python安装目录下的LIB/distutils里面的_msvccompiler.py,打开后(前提是必须安装了VS2013)


将下方的vcvarsall修改为vcvarsall.bat的绝对路径,vcruntime修改为vcruntime140.dll的绝对路径即可,如果之后出现了有关config-*.py的问题暂时不清楚怎么解决

    (二)、 上述情况可以使用已经编译好的模块进行安装,http://www.lfd.uci.edu/~gohlke/pythonlibs/,可以下载编译好的文件,前提是必须安装wheel之后才能进行安装,有些时候也能使用easy_install进行安装,对于pip无法安装的模块,可以尝试使用easy_install。
2、python3.x之后使用pymysql模块,这个请使用easy_install进行安装, 如果解决了unable to find vcvarsall.bat的问题,那就可以使用pip安装。

3、tushare的get_hist_data方法返回的是DataFrame数据类型,在DataFrame中有直接将数据写入数据库的方法-----to_sql

4、to_sql方法需要使用sqlalchemy模块,所以用pip安装sqlalchemy,下载很慢,下载地址https://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-1.0.12.tar.gz,下载后无需解压,直接用pip安装即可

5、 to_sql有两个必须参数,第一个是将数据导入数据库中存入的表的名称,(数据存入的表若已存在,则要添加if_exists='append'参数),此处如果输入的表是不存在的,会弹错误,不用管他,手动设置索引或运行CREATE
INDEX ix_d_data_date ON test (date(20))
(test是表名,使用时自行修改) ,执行后,再次运行to_sql方法(记得要添加if_exists='append'参数)例子(df.to_sql("test",engine,if_exists='append'))

6、对于dataframe中的数据,可以使用其中的iloc定点获取数据()就像二维数组一样使用,例子

 
同样也可以 

这样获取的是一行的数据,要获取一列的数据可以这样写df["列名"]

7、pandas参考文档:http://pandas-docs.github.io/pandas-docs-travis/index.html
                                   http://jingyan.baidu.com/season/43456
                                   http://www.tuicool.com/articles/YRfMNrm
8、sqlalchemy模块参考:
                                http://docs.sqlalchemy.org/en/latest/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pymysql 

9、多说一句,bing比百度好用 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息