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=<no_default>)[源代码][源代码]#
将 SQL 查询读取到 DataFrame 中。
返回一个与查询字符串的结果集相对应的 DataFrame。可以选择提供一个 index_col 参数来使用其中一列作为索引,否则将使用默认的整数索引。
- 参数:
- sqlstr SQL 查询或 SQLAlchemy 可选择对象(选择或文本对象)
要执行的 SQL 查询。
- conSQLAlchemy 可连接对象、字符串或 sqlite3 连接
使用 SQLAlchemy 可以使用该库支持的任何数据库。如果是一个 DBAPI2 对象,则仅支持 sqlite3。
- index_colstr 或 str 列表,可选,默认值:None
要设置为索引(MultiIndex)的列。
- coerce_float布尔值, 默认为 True
尝试将非字符串、非数字对象(如 decimal.Decimal)的值转换为浮点数。对 SQL 结果集很有用。
- 参数列表、元组或映射,可选,默认:无
传递给 execute 方法的参数列表。传递参数的语法依赖于数据库驱动。检查您的数据库驱动文档,了解支持 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 dict 对应于pandas.to_datetime()
的关键字参数。特别适用于没有原生日期时间支持的数据库,例如 SQLite。
- chunksizeint, 默认为 None
如果指定,返回一个迭代器,其中 chunksize 是每个块中包含的行数。
- dtype输入列名或列的字典
数据或列的数据类型。例如 np.float64 或 {‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}。
Added in version 1.3.0.
- dtype_backend{‘numpy_nullable’, ‘pyarrow’}
应用于结果
DataFrame
的后端数据类型(仍在实验中)。如果未指定,默认行为是不使用可空数据类型。如果指定,行为如下:"numpy_nullable"
: 返回支持可空数据类型的DataFrame
"pyarrow"
: 返回支持 pyarrow 的可空ArrowDtype
DataFrame
Added in version 2.0.
- 返回:
- DataFrame 或 Iterator[DataFrame]
返回一个包含执行的 SQL 查询结果集的 DataFrame 对象,与指定的数据库连接相关。
参见
read_sql_table
将 SQL 数据库表读取到 DataFrame 中。
read_sql
将 SQL 查询或数据库表读取到 DataFrame 中。
备注
通过 parse_dates 参数解析的任何带有时区信息的日期时间值将被转换为 UTC。
例子
>>> from sqlalchemy import create_engine >>> engine = create_engine("sqlite:///database.db") >>> sql_query = "SELECT int_column FROM test_data" >>> with engine.connect() as conn, conn.begin(): ... data = pd.read_sql_query(sql_query, conn)