資料庫版本:mysql
python版本:3.5
之前用想用mysqldb來著,後來發現py3.5版本不支援,現選擇pymysql
現在想將資料庫adidas中的表jd_comment讀取至python中的dataframe,方便資料分析處理
大眾**如下:
importpymysql
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如不需要,也可自行刪除
importpandas.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]))
py之資料庫操作
import pymysql1.連線資料庫 host user passwd charset conn pymysql.connect host localhost user root password redhat db westos charset utf8 2.建立游標物件 cur conn....
PY3 內建資料結構 8 解構與封裝
解構的理解與用法 解構是python很有特色的乙個功能,被很多語言借鑑 例如es6 元素按照順序賦值給變數in 31 lst list range 5 in 32 head,mid,tail lst in 33 print head,tail 0 4in 34 print mid 1,2,3 變數和...
py3相對import和mock的問題之二
本文主要用於記錄問題,很難解決您的實際問題,見諒!測試用例結構 簡單介紹一下,a檔案是非py服務 用了一些莫名其妙的模組 b依賴於a,因此我在測試b中的 需要將a進行隔離。在core 中用裝飾器的方式,將a模組隔離 from import a這種寫法,在sys.modules中就是test.a的形式...