當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.read_sql用法及代碼示例


用法:

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

將 SQL 查詢或數據庫表讀入 DataFrame。

此函數是read_sql_tableread_sql_query 的便捷包裝器(用於向後兼容)。它將根據提供的輸入委托給特定的函數。 SQL 查詢將被路由到 read_sql_query ,而數據庫表名將被路由到 read_sql_table 。請注意,委托函數可能有更多關於此處未列出的函數的具體說明。

參數

sqlstr 或 SQLAlchemy 可選(選擇或文本對象)

要執行的 SQL 查詢或表名。

conSQLAlchemy 可連接、str 或 sqlite3 連接

使用 SQLAlchemy 可以使用該庫支持的任何數據庫。如果是 DBAPI2 對象,則僅支持 sqlite3。用戶負責 SQLAlchemy 可連接的引擎處理和連接關閉; str 連接會自動關閉。看這裏。

index_colstr 或 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
  1. 對 “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
  1. 日期解析“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

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.read_sql。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。