pandas.read_sql_query#

pandas.read_sql_query(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, chunksize=None, dtype=None, dtype_backend=_NoDefault.no_default)[源代码]#

将 SQL 查询读入 DataFrame。

返回与查询字符串结果集对应的 DataFrame。可以选择提供 index_col 参数来使用其中一列作为索引,否则将使用默认的整数索引。

Parameters:
sqlstr SQL 查询或 SQLAlchemy Selectable (select 或 text object)

要执行的 SQL 查询。

conSQLAlchemy connectable, str, 或 sqlite3 connection

使用 SQLAlchemy 可以使用该库支持的任何数据库。如果使用 DBAPI2 对象,则仅支持 sqlite3。

index_colstr 或 str 列表,可选,默认:None

要设置为索引(多索引)的列。

coerce_floatbool, default True

尝试将非字符串、非数字对象(如 decimal.Decimal)的值转换为浮点数。对于 SQL 结果集很有用。

paramslist, tuple 或 mapping,可选,默认值:None

要传递给 execute 方法的参数列表。用于传递参数的语法取决于数据库驱动程序。检查您的数据库驱动程序文档,了解 PEP 249 的 paramstyle 描述的五种语法样式中哪一种受支持。例如,对于 psycopg2,使用 %(name)s,因此使用 params={‘name’ : ‘value’}。

parse_dates列表或字典,默认:None
  • 要解析为日期的列名的列表。

  • 字典,格式为 {column_name: format string},其中 format string 在解析字符串时间时与 strftime 兼容,或者在解析整数时间戳时为 (D, s, ns, ms, us) 之一。

  • 字典,格式为 {column_name: arg dict},其中 arg dict 对应于 pandas.to_datetime() 的关键字参数。当使用不原生支持 Datetime 的数据库(如 SQLite)时尤其有用。

chunksizeint,默认 None

如果指定,则返回一个迭代器,其中 chunksize 是每个块中包含的行数。

dtype类型名称或列字典

数据或列的数据类型。例如 np.float64 或 {‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}。

在 1.3.0 版本加入.

dtype_backend{‘numpy_nullable’, ‘pyarrow’}, 默认 ‘numpy_nullable’

应用于结果 DataFrame 的后端数据类型(仍处于实验阶段)。行为如下:

  • "numpy_nullable":返回支持可空 dtype 的 DataFrame (默认)。

  • "pyarrow":返回 pyarrow 支持的可空 ArrowDtype DataFrame。

在 2.0 版本加入.

Returns:
DataFrame 或 Iterator[DataFrame]

参见

read_sql_table

将 SQL 数据库表读入 DataFrame。

read_sql

将 SQL 查询或数据库表读取到 DataFrame。

Notes

通过 parse_dates 参数解析的任何带有时区信息的 datetime 值都将转换为 UTC。

Examples

>>> from sqlalchemy import create_engine  
>>> engine = create_engine("sqlite:///database.db")  
>>> with engine.connect() as conn, conn.begin():  
...     data = pd.read_sql_table("data", conn)