溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python Pandas pandas.read_sql函數(shù)的用法

發(fā)布時(shí)間:2021-06-21 15:49:11 來源:億速云 閱讀:623 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Python Pandas pandas.read_sql函數(shù)的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python Pandas pandas.read_sql函數(shù)的用法”吧!

Pandas是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas 納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。Pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會(huì)發(fā)現(xiàn),它是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。本文主要介紹一下Pandas中read_sql方法的使用。

pandas.read_sql(sql,con,index_col = None,coerce_float = True,params = None,parse_dates = None,columns = None,chunksize = None)

將SQL查詢或數(shù)據(jù)庫表讀入DataFrame。

此功能是一個(gè)方便的包裝read_sql_table和 read_sql_query(為了向后兼容)。它將根據(jù)提供的輸入委托給特定的功能。SQL查詢將被路由到read_sql_query,而數(shù)據(jù)庫表名將被路由到read_sql_table。請(qǐng)注意,委托的功能可能有更多關(guān)于其功能的特定說明,此處未列出。

參數(shù):       

sql:string或SQLAlchemy可選(選擇或文本對(duì)象)

要執(zhí)行的SQL查詢或表名。

con:SQLAlchemy可連接(引擎/連接)或數(shù)據(jù)庫字符串URI

或DBAPI2連接(回退模式)

使用SQLAlchemy可以使用該庫支持的任何數(shù)據(jù)庫。如果是DBAPI2對(duì)象,

則僅支持sqlite3。

index_col:字符串或字符串列表,可選,默認(rèn)值:無

要設(shè)置為索引的列(MultiIndex)。

coerce_float:boolean,默認(rèn)為True

嘗試將非字符串,非數(shù)字對(duì)象(如decimal.Decimal)的值轉(zhuǎn)換為浮點(diǎn),

這對(duì)SQL結(jié)果集很有用。

params:list,tuple或dict,optional,default:None

要傳遞給執(zhí)行方法的參數(shù)列表。用于傳遞參數(shù)的語法取決于數(shù)據(jù)庫驅(qū)動(dòng)程序。

檢查數(shù)據(jù)庫驅(qū)動(dòng)程序文檔,

了解PEP 249的paramstyle中描述的五種語法樣式中的哪一種。

例如,對(duì)于psycopg2,使用%(name)s,所以使用params = {'name':'value'}

parse_dates:list或dict,默認(rèn)值:None

要解析為日期的列名的列表。

的字典,其中格式字符串是在解析的情況下的strftime兼容的字符串倍,

或是在解析整數(shù)時(shí)間戳的情況下(d,S,NS,MS,我們)之一。{column_name: format string}

dict of ,其中arg dict對(duì)應(yīng)于關(guān)鍵字參數(shù),特別適用于沒有本機(jī)Datetime支持的數(shù)據(jù)庫,

例如SQLite。{column_name: arg dict}pandas.to_datetime()

columns:list,默認(rèn)值:None

從SQL表中選擇的列名列表(僅在讀取表時(shí)使用)。

chunksize:int,默認(rèn)無

如果指定,則返回一個(gè)迭代器,其中chunksize是要包含在每個(gè)塊中的行數(shù)。

返回:

DataFrame(數(shù)據(jù)幀)

例如

import MySQLdb
mysql_cn= MySQLdb.connect(host='myhost', 
                port=3306,user='myusername', passwd='mypassword', 
                db='information_schema')
df_mysql = pd.read_sql('select * from VIEWS;', con=mysql_cn)    
print 'loaded dataframe from MySQL. records:', len(df_mysql)
mysql_cn.close()

內(nèi)容擴(kuò)展:

有沒有關(guān)于如何使用Pandas中的SQL查詢傳遞參數(shù)的示例?

特別是我正在使用SQLAlchemy引擎來連接到PostgreSQL數(shù)據(jù)庫。到目前為止,我發(fā)現(xiàn)以下工作:

df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %s AND %s'),
                   db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
                   index_col=['Timestamp'])

pandas文檔說,params也可以作為一個(gè)dict來傳遞,但我似乎無法讓這個(gè)工作嘗試了:

df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN :dstart AND :dfinish'),
                   db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
                   index_col=['Timestamp'])

到此,相信大家對(duì)“Python Pandas pandas.read_sql函數(shù)的用法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI