第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Pandas 讀取 MySql 數據

1. 前言

上節(jié)課我們講述了 Pandas 解析 TXT 文件,CSV 文件以及 Excel 文件數據,主要涉及到了兩個函數 read_csv() 函數和 read_excel() 函數,并詳細講解了對應函數中常用的參數設置。

那 MySQL 作為數據記錄和處理的常用工具之一,我們如何用 Pandas 進行 MySQL 數據的解析呢?本節(jié)課我們首先講述 PyMySQL 庫進行 MySQL 數據庫的連接,然后講述 Pandas 對 MySQLl 數據庫的讀取。

2. 安裝 PyMySQL 庫

PyMySQL 庫是用于連接 MySQL 服務器的一個庫,對應的是 Python3.x 的版本,如果是 Python2 要使用 MySqlDb 庫。我們在使用 PyMySQL 之前要確保已經安裝了該模塊,下面我們介紹一下如何安裝 PyMySQL 庫。

打開我們的 Anaconda 文件下的 Anaconda Prompt 工具,然后在命令窗口中輸入命令行:pip install PyMySQL 接著按回車鍵,可以看到安裝進度,最后顯示 Successfully… 表示安裝成功:

圖片描述

3. 準備數據文件

首先我們在 Navicate 數據庫可視化管理工具中,新建數據庫 example ,然后在該數據庫中新建數據表 t_file (該表是文件管理數據表),在里面我們已經準備了一些數據:

圖片描述

4. PyMySQL 庫的使用

4.1 導入 PyMySQL 庫

打開我們的 Notebook 工具,創(chuàng)建新的 Python 工作文件,通過 import pymysql 在程序中導入PyMySQL 庫:

圖片描述

4.2 connect() 函數

PyMySQL 庫中的函數 connect() 用于連接數據庫,返回的對象是一個數據庫連接對象,下面我們列舉出了該方法常用的參數介紹:

參數名稱 描述
host 連接的數據庫地址
port 數據庫的端口號,默認的是 3306
database 要連接的數據庫名稱
user 數據庫用戶名
password 數據庫密碼
charset 字符編碼方式

下面我們通過代碼用 connect() 方法來連接我們剛才建立的 example 數據庫:

# 導入pandas 和 pymysql 包
import pandas as pd
import pymysql
# 返回一個 Connection 對象
db_conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='****',
database='example',
charset='utf8'
)
print(db_conn)

# --- 輸出結果 ---
<pymysql.connections.Connection object at 0x000002C6F1D4F8E0>

輸出解析:通過輸出結果可以看到,我們使用 connect() 函數,連接 MySQL 數據庫,返回的是個 pymysql.connections.Connection 數據庫連接對象,通過該對象我們后面可以進行對數據庫的操作 。

5. Pandas 解析 MySql 數據

上面我們通過 PyMySQL 庫建立了 MySQL 數據庫連接對象,接下來我們將通過 Pandas 進行 MySQL 數據的解析。

5.1 read_sql() 函數

該函數主要從數據庫中讀取數據幀,里面提供了一些參數可以設置,下面列舉常用的幾個參數:

參數名稱 描述
sql 要執(zhí)行的 sql 語句
con 數據庫連接對象
params 參數的傳遞
index_col 選擇某一列作為 index

參數 sql 和參數 con

我們首先通過代碼演示這兩個參數的設置,讀取 example 數據庫中的 t_file 數據表數據:

# 導入pandas 和 pymysql 包
import pandas as pd
import pymysql
# 返回一個 Connection 對象
db_conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='0508',
database='example',
charset='utf8'
)

# 執(zhí)行sql操作
sql="select * from t_file"
pd.read_sql(sql,con=db_conn)

# --- 輸出結果 ---

	id	directory	fileName	md5	size	time	type
0   1 C:/temp-rainy1	匯報.png	845a500eca6ef877	22507	2020-01-16 10:53:02	png
1   2 C:/temp-rainy2	模板.png	845a500eca6ef877	22507	2020-01-16 10:59:16	png
2   3 C:/temp-rainy3	說明書.docx  5626d69f9f39d65d	235999	2020-01-16 10:59:45	docx
3   4 C:/temp-rainy4	接口及調用說明.rar	459e008250ccb9ca1 391542 2020-01-16 11:02:07 rar
4   5 C:/temp-rainy5	數據說明.pdf	333052beda8773	434439	2020-01-16 13:44:03	pdf

輸出解析:我們通過 sql 語句設置數據庫操作語句,這里我們是查詢 t_file 的所有數據,參數 con 中我們傳入了 PyMySQL 庫創(chuàng)建的 db_con 數據庫連接對象。通過輸出結果可以看到,查出了 t_file 中的數據內容。

參數 params

該參數用于我們執(zhí)行 sql 中參數的配置:

# 導入pandas 和 pymysql 包
import pandas as pd
import pymysql
# 返回一個 Connection 對象
db_conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='0508',
database='example',
charset='utf8'
)

# 執(zhí)行sql操作
sql = "select * from t_file where id = %s"
pd.read_sql(sql,con=db_conn,params=[2])

# --- 輸出結果 ---

	id	directory	fileName	md5	size	time	type
0	2	C:/temp-rainy2	模板.png	845a500eca6ef877	22507	2020-01-16 10:59:16	png

輸出解析:我們 sql 查詢語句中設置了 id 的參數條件,在 read_sql() 函數中我們通過 params 參數設置了 id 的條件為 2,因此看到我們的數據結果,正是我們數據庫中 id=2 的數據行。

參數 index_col

通過該參數的設置,某一列指定為行索引。

# 導入pandas 和 pymysql 包
import pandas as pd
import pymysql
# 返回一個 Connection 對象
db_conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='0508',
database='example',
charset='utf8'
)

# 執(zhí)行sql操作
sql = "select * from t_file"
pd.read_sql(sql,con=db_conn,index_col="type")

# --- 輸出結果 ---
	id	directory	fileName	md5	size	time
type						
png	1	C:/temp-rainy1	匯報.png	845a500eca6ef877	22507	2020-01-16 10:53:02
png	2	C:/temp-rainy2	模板.png	845a500eca6ef877	22507	2020-01-16 10:59:16
docx	3	C:/temp-rainy3	說明書.docx	5626d69f9f39d65d	235999	2020-01-16 10:59:45
rar	4	C:/temp-rainy4	接口及調用說明.rar	459e008250ccb9ca1	391542	2020-01-16 11:02:07
pdf	5	C:/temp-rainy5	數據說明.pdf	333052beda8773	434439	2020-01-16 13:44:03

輸出解析:程序中我們通過設置 index_col=“type” ,指定字段文件的類型 (type) 作為我們數據行的索引,這里可以看到輸出結果,最左側的一列正式我們的 type 數據列,如果不指定 index_col ,默認的行索引是從0開始進行序號遞增編排。

3. 小結

以上就是我們通過 Pandas 讀取 MySql 數據庫數據的基本操作,本節(jié)課程我們主要學習了 PyMySQL 庫進行數據庫連接對象的創(chuàng)建,然后用 Pandas 中的 read_sql() 函數進行數據庫數據的解析,以及該函數中幾個常用的參數。本節(jié)課程的重點如下:

  • PyMySQL 庫的安裝和數據庫連接函數 connect() 的使用;
  • Pandas 庫中 read_sql() 函數的使用和里面常用的參數。

圖片描述

Tips:想要學習更多Pandas相關知識,可以點擊
Pandas Pandas讀取數據文件
Pandas Pandas數據結構Series
Pandas Pandas數據結構DataFrame