Python之数据库导入(py3.5)


数据库版本:MySQL

Python版本:3.5

之前用想用MySQLdb来着,后来发现py3.5版本不支持,现选择pymysql

 

现在想将数据库adidas中的表jd_comment读取至python中的DataFrame,方便数据分析处理

 

大众代码如下:

import pymysql import pandas as pd import numpy as np try: conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='adidas', charset='UTF8') cur = conn.cursor() cur.execute('select * from jd_comment') rows = cur.fetchall() #获取元组列表
 cur.close() conn.close() except pymysql.Error as e: print('Mysql Error %d: %s' %(e.args[0], e.args[1])) cols = list(zip(*cur.description)) #可以看到列名(由元组构成)

#将数据库中的数据保存为DataFrame(数据必须是字典或者数组,列表也必须是list或者数组)
adidas = pd.DataFrame(np.array(rows), columns=list(cols[0]))

charset必须和之前数据库保存一致,否则中文会出现乱码

简单说2句:host指的是主机名

                    user用户名

       passwd密码

       db 数据库名

                    rows获取的是数据库中Tables的数据行,但是保存的是元组tuple,如若要构造成DataFrame,需转化为数组或者字典

        cols列表中第一个元组保存的是数据库中Tables的列名,如若要构造成DataFrame,需要转化为list或数组

             详细可参考Dataframe的用法

 

看了上述代码感觉每次导入一个数据库好繁琐,下面给出一个精简版。代码中的try---except如不需要,也可自行删除

import pandas.io.sql as sql import pymysql try: conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='adidas', charset='UTF8') adidas = sql.read_sql('select * from jd_comment', conn)#将数据库读入dataframe
 conn.close() except pymysql.Error as e: print('Mysql Error %d: %s' %(e.args[0], e.args[1])) 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM