Python連線mysql資料庫極簡教程(pandas)
在網上找了若干篇教程,一頓操作猛如虎之後發現,大多數教程推薦的 MySQLdb好像不行啊,是python 2。x的。。。這年頭不該預設主流python 3。x了嘛?
又針對python 3。x檢索了一番,找到了PyMySQL(參見菜鳥教程-PyMySQL驅動)。能用是能用,但還是有點不太對啊,這查詢出來儲存為字串了,要弄成結構化的還要寫for迴圈。。。這操作未免也太不python了不是?
所以用“pandas+MySQL”作為關鍵詞第三遍搜尋,終於找到了優雅的答案,現整理出來和大家分享。全文分為python
連線、讀取、寫入
資料庫三部分。
Part 1。 Python連線資料庫
首先,在cmd裡安裝pandas、sqlalchemy、pymysql三個包(pymysql也可用mysqlconnector替換,兩者都可以連線MySQL資料庫):
pip install pandas
pip install sqlalchemy
pip install pymysql
初始化資料庫連線:
import
pandas
as
pd
from
sqlalchemy
import
create_engine
# 初始化資料庫連線
# 按實際情況依次填寫MySQL的使用者名稱、密碼、IP地址、埠、資料庫名
engine
=
create_engine
(
‘mysql+pymysql://root:12345678@localhost:3306/testdb’
)
# 如果覺得上方程式碼不夠優雅也可以按下面的格式填寫
# engine = create_engine(“mysql+pymysql://{}:{}@{}:{}/{}”。format(‘root’, ‘12345678’, ‘localhost’, ‘3306’, ‘testdb’))
這裡“mysql+pymysql://”是指明透過pymysql這個包來連線資料庫,也可以使用mysqlconnector;如果是python2。x可以替換為MySQLdb來連線。MySQL的IP地址和埠號,預設為localhost:3306。
Part 2。 Python讀取資料庫
寫好查詢語句並執行,將結果存入資料框DataFrame:
# MySQL匯入DataFrame
# 填寫自己所需的SQL語句,可以是複雜的查詢語句
sql_query
=
‘select * from product;’
# 使用pandas的read_sql_query函式執行SQL語句,並存入DataFrame
df_read
=
pd
。
read_sql_query
(
sql_query
,
engine
)
(
df_read
)
檢視該資料框df_read:
Part 3。 Python寫入資料庫
# DataFrame寫入MySQL
# 新建DataFrame
df_write
=
pd
。
DataFrame
({
‘id’
:
[
10
,
27
,
34
,
46
],
‘name’
:
[
‘張三’
,
‘李四’
,
‘王五’
,
‘趙六’
],
‘score’
:
[
80
,
75
,
56
,
99
]})
# 將df儲存為MySQL中的表,不儲存index列
df_write
。
to_sql
(
‘testdf’
,
engine
,
index
=
False
)
在MySQL中檢視該表:
Reference
https://
blog。csdn。net/lzw2016/a
rticle/details/84720433
2。
https://www。
jianshu。com/p/238a13995
b2b
3。
https://www。
runoob。com/python3/pyth
on3-mysql。html