• 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])) 
  • 相关阅读:
    webuploader之大文件分段上传、断点续传
    人民币数字金额转大写金额
    发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象
    HTML5 CSS3 专题 : 拖放 (Drag and Drop)
    Cts框架解析(6)-任务的运行
    vector draw 试用期结束的 激活方法
    15_Android中任务栈
    Android之——AIDL深入
    FZU 2155 盟国
    十分简洁的手机浏览器 lydiabox
  • 原文地址:https://www.cnblogs.com/Yiutto/p/5995927.html
Copyright © 2020-2023  润新知