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_table
和read_sql_query
(用于向后兼容)。它将根据提供的输入委托给特定的功能。SQL查询将被路由到read_sql_query
,而数据库表名将被路由到read_sql_table
。请注意,委托函数可能具有此处未列出的有关其功能的更具体说明。- 参数
- sql可选择的字符串或SQLAlChemy(选择或文本对象)
要执行的SQL查询或表名。
- conSQLAlChemy可连接、字符串或SQLITE3连接
通过使用SQLAlChemy,可以使用该库支持的任何数据库。如果是DBAPI2对象,则仅支持sqlite3。用户负责处理可连接的SQLAlChemy的引擎和关闭连接;自动关闭字符串连接。看见 here 。
- index_col字符串或字符串列表,可选,默认:无
要设置为索引(多索引)的列。
- coerce_float布尔值,默认为True
尝试将非字符串、非数值对象(如decimal.Decimal)的值转换为浮点数,这对SQL结果集很有用。
- params列表、元组或字典,可选,默认:无
要传递给Execute方法的参数列表。用于传递参数的语法依赖于数据库驱动程序。请查看您的数据库驱动程序文档,了解PEP 249的参数样式中描述的五种语法样式中支持哪一种。例.对于心理拷贝2,使用%(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()
对于没有本机DATETIME支持的数据库(如SQLite)尤其有用。
- columns列表,默认:无
要从SQL表中选择的列名列表(仅在读取表时使用)。
- chunksizeInt,默认为无
如果指定,则返回迭代器,其中 chunksize 是要包含在每个块中的行数。
- 退货
- DataFrame或迭代器 [DataFrame]
参见
read_sql_table
将SQL数据库表读入DataFrame。
read_sql_query
将SQL查询读入DataFrame。
示例
通过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