用法:
pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)
將 SQL 查詢或數據庫表讀入 DataFrame。
此函數是
read_sql_table
和read_sql_query
的便捷包裝器(用於向後兼容)。它將根據提供的輸入委托給特定的函數。 SQL 查詢將被路由到read_sql_query
,而數據庫表名將被路由到read_sql_table
。請注意,委托函數可能有更多關於此處未列出的函數的具體說明。- sql:str 或 SQLAlchemy 可選(選擇或文本對象)
要執行的 SQL 查詢或表名。
- con:SQLAlchemy 可連接、str 或 sqlite3 連接
使用 SQLAlchemy 可以使用該庫支持的任何數據庫。如果是 DBAPI2 對象,則僅支持 sqlite3。用戶負責 SQLAlchemy 可連接的引擎處理和連接關閉; str 連接會自動關閉。看這裏。
- index_col:str 或 str 列表,可選,默認:無
要設置為索引(MultiIndex)的列。
- coerce_float:布爾值,默認為真
嘗試將非字符串、非數字對象(如 decimal.Decimal)的值轉換為浮點數,這對 SQL 結果集很有用。
- params:列表,元組或字典,可選,默認:無
要傳遞給執行方法的參數列表。用於傳遞參數的語法取決於數據庫驅動程序。檢查您的數據庫驅動程序文檔,了解 PEP 249 的 paramstyle 中說明的五種語法樣式中的哪一種受支持。例如:對於 psycopg2,使用 %(name)s 所以使用 params={‘name’:‘value’}。
- parse_dates:列表或字典,默認:無
要解析為日期的列名列表。
{column_name:format string}
的字典,其中格式字符串在解析字符串時間的情況下是 strftime 兼容的,或者在解析整數時間戳的情況下是 (D, s, ns, ms, us) 之一。{column_name:arg dict}
的字典,其中 arg 字典對應於pandas.to_datetime()
的關鍵字參數,特別適用於沒有原生日期時間支持的數據庫,例如 SQLite。
- columns:列表,默認:無
要從 SQL 表中選擇的列名列表(僅在讀取表時使用)。
- chunksize:整數,默認無
如果指定,則返回一個迭代器,其中
chunksize
是要包含在每個塊中的行數。
- 數據幀或迭代器[數據幀]
參數:
返回:
例子:
通過 SQL 查詢或 SQL 表名從 SQL 讀取數據。使用 SQLite 數據庫時,僅接受 SQL 查詢,僅提供 SQL 表名將導致錯誤。
>>> from sqlite3 import connect >>> conn = connect(':memory:') >>> df = pd.DataFrame(data=[[0, '10/11/12'], [1, '12/11/10']], ... columns=['int_column', 'date_column']) >>> df.to_sql('test_data', conn) 2
>>> pd.read_sql('SELECT int_column, date_column FROM test_data', conn) int_column date_column 0 0 10/11/12 1 1 12/11/10
>>> pd.read_sql('test_data', 'postgres:///db_name')
通過
parse_dates
參數將日期解析應用於列>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates=["date_column"]) int_column date_column 0 0 2012-10-11 1 1 2010-12-11
parse_dates
參數在提供的列上調用pd.to_datetime
。用於在列上應用pd.to_datetime
的自定義參數值通過字典格式指定: 1. 在解析 “date_column” 的值時忽略錯誤>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates={"date_column":{"errors":"ignore"}}) int_column date_column 0 0 2012-10-11 1 1 2010-12-11
對 “date_column” 的值應用 dayfirst 日期解析順序
>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates={"date_column":{"dayfirst":True}}) int_column date_column 0 0 2012-11-10 1 1 2010-11-12
日期解析“date_column”的值時應用自定義格式
>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates={"date_column":{"format":"%d/%m/%y"}}) int_column date_column 0 0 2012-11-10 1 1 2010-11-12
相關用法
- Python pandas.read_sql_table用法及代碼示例
- Python pandas.read_stata用法及代碼示例
- Python pandas.read_pickle用法及代碼示例
- Python pandas.read_hdf用法及代碼示例
- Python pandas.read_xml用法及代碼示例
- Python pandas.read_table用法及代碼示例
- Python pandas.read_excel用法及代碼示例
- Python pandas.read_fwf用法及代碼示例
- Python pandas.read_csv用法及代碼示例
- Python pandas.read_html用法及代碼示例
- Python pandas.read_json用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.Index.value_counts用法及代碼示例
- Python pandas.DatetimeTZDtype用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.read_sql。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。