Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中read_sql方法的使用。
1
|
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:string或SQLAlchemy可选(选择或文本对象) 要执行的SQL查询或表名。 con:SQLAlchemy可连接(引擎/连接)或数据库字符串URI 或DBAPI2连接(回退模式) 使用SQLAlchemy可以使用该库支持的任何数据库。如果是DBAPI2对象, 则仅支持sqlite3。 index_col:字符串或字符串列表,可选,默认值:无 要设置为索引的列(MultiIndex)。 coerce_float:boolean,默认为True 尝试将非字符串,非数字对象(如decimal.Decimal)的值转换为浮点, 这对SQL结果集很有用。 params:list,tuple或dict,optional,default:None 要传递给执行方法的参数列表。用于传递参数的语法取决于数据库驱动程序。 检查数据库驱动程序文档, 了解PEP 249的paramstyle中描述的五种语法样式中的哪一种。 例如,对于psycopg2,使用%(name)s,所以使用params = {'name':'value'} parse_dates:list或dict,默认值:None 要解析为日期的列名的列表。 的字典,其中格式字符串是在解析的情况下的strftime兼容的字符串倍, 或是在解析整数时间戳的情况下(d,S,NS,MS,我们)之一。{column_name: format string} dict of ,其中arg dict对应于关键字参数,特别适用于没有本机Datetime支持的数据库, 例如SQLite。{column_name: arg dict}pandas.to_datetime() columns:list,默认值:None 从SQL表中选择的列名列表(仅在读取表时使用)。 chunksize:int,默认无 如果指定,则返回一个迭代器,其中chunksize是要包含在每个块中的行数。 |
返回: |
DataFrame(数据帧) |
例如
1
2
3
4
5
6
7
|
import MySQLdb
mysql_cn = MySQLdb.connect(host = 'myhost' ,
port = 3306 ,user = 'myusername' , passwd = 'mypassword' ,
db = 'information_schema' )
df_mysql = pd.read_sql( 'select * from VIEWS;' , con = mysql_cn)
print 'loaded dataframe from MySQL. records:' , len (df_mysql)
mysql_cn.close()
|
内容扩展:
有没有关于如何使用Pandas中的SQL查询传递参数的示例?
特别是我正在使用SQLAlchemy引擎来连接到PostgreSQL数据库。到目前为止,我发现以下工作:
1
2
3
4
|
df = psql.read_sql(( 'select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN %s AND %s' ),
db,params = [datetime( 2014 , 6 , 24 , 16 , 0 ),datetime( 2014 , 6 , 24 , 17 , 0 )],
index_col = [ 'Timestamp' ])
|
pandas文档说,params也可以作为一个dict来传递,但我似乎无法让这个工作尝试了:
1
2
3
4
|
df = psql.read_sql(( 'select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN :dstart AND :dfinish' ),
db,params = { "dstart" :datetime( 2014 , 6 , 24 , 16 , 0 ), "dfinish" :datetime( 2014 , 6 , 24 , 17 , 0 )},
index_col = [ 'Timestamp' ])
|
到此这篇关于Python Pandas pandas.read_sql函数实例用法的文章就介绍到这了,更多相关Python Pandas pandas.read_sql函数详解内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cjavapy.com/article/143/