用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。