更新時(shí)間:2022-07-11 來(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ù)的讀寫(xiě)操作。
為了高效地對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行讀取,這里需要引入SQLAlchemy。SQLALchemy是使用Python編寫(xiě)的一款開(kāi)源軟件,它提供的SQL工具包和對(duì)象映射工具能夠高效地訪問(wèn)數(shù)據(jù)庫(kù)。在使用SQLAlchemy時(shí)需要使用相應(yīng)的連接工具包,比如MySQL需要安裝mysqlconnector,Oracle則需要安裝cx_oracle。
Pandas的io.sql模塊中提供了常用的讀寫(xiě)數(shù)據(jù)庫(kù)函數(shù),具體如下。
1.read_sql_table():讀取的整張數(shù)據(jù)表中的數(shù)據(jù)轉(zhuǎn)換成DataFrame對(duì)象。
2.read_sql_query():將SQL語(yǔ)句讀取的結(jié)果轉(zhuǎn)換成DataFrame對(duì)象。
3.read_sql():上述兩個(gè)函數(shù)的結(jié)合,既可以讀數(shù)據(jù)表也可以讀SQL語(yǔ)句。
4.to_sql():將數(shù)據(jù)寫(xiě)入到SQL數(shù)據(jù)庫(kù)中。
上述列舉了各個(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命令安裝該模塊。