更新時(shí)間:2022-12-15 來(lái)源:黑馬程序員 瀏覽量:
大多數(shù)情況之下,海量的數(shù)據(jù)是使用數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)的,這主要是依賴于數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)化、數(shù)據(jù)共享性、獨(dú)立性等特點(diǎn)。因此,在實(shí)際生產(chǎn)環(huán)境中,絕大多數(shù)的數(shù)據(jù)都是存儲(chǔ)在數(shù)據(jù)庫(kù)中。Pandas支持MySQL、Oracle、SQLite等主流數(shù)據(jù)庫(kù)的讀寫操作。
為了高效地對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行讀取,這里需要引入SQLAlchemy。SQLAlchemy是使用Python編寫的一款開(kāi)源軟件,它提供的SQL工具包和對(duì)象映射工具能夠高效地訪問(wèn)數(shù)據(jù)庫(kù)。在使用SQLAlchemy時(shí)需要使用相應(yīng)的連接工具包,比如MySQL需要安裝mysqlconnector,Oracle則需要安裝cx_oracle。
Pandas的io.sql模塊中提供了常用的讀寫數(shù)據(jù)庫(kù)函數(shù),具體如表3-3所示。
表3-3 pandas.io.sql模塊常用的函數(shù)
在表3-3中列舉了各個(gè)函數(shù)的具體功能。其中,read_sql_table()函數(shù)與read_sql_query()函數(shù)都可以將讀取的數(shù)據(jù)轉(zhuǎn)換為DataFrame對(duì)象,前者表示將整張表的數(shù)據(jù)轉(zhuǎn)換成DataFrame,后者則表示將執(zhí)行SQL語(yǔ)句的結(jié)果轉(zhuǎn)換為DataFrame對(duì)象。
注意:在連接MySQL數(shù)據(jù)庫(kù)時(shí),這里使用的是mysqlconnector驅(qū)動(dòng),如果當(dāng)前的Python環(huán)境中沒(méi)有該模塊,則需要使用pip install mysql-connector命令安裝該模塊。