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