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