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 。请注意,委托函数可能具有此处未列出的有关其功能的更具体说明。

参数
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
  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