Bootstrap
Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中read_sql_query方法的使用。

pandas.read_sql_query(sql,con,index_col = None,coerce_float = True,params = None,parse_dates = None,chunksize = None)源代码

将SQL查询读入DataFrame。

返回与查询字符串的结果集对应的DataFrame。(可选)提供index_col参数以使用其中一列作为索引,否则将使用默认整数索引。

参数:

sql:string SQL查询或SQLAlchemy Selectable(select或文本对象)

要执行的SQL查询。

con:SQLAlchemy可连接(引擎/连接),数据库字符串URI,

或sqlite3 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

要解析为日期的列名列表。

{column_name: format string}格式的字典,其中,

格式字符串在解析字符串时间时是与strftime兼容的,

或者在解析整数时间戳时是(D、s、ns、ms、us)兼容的。

{column_name: arg dict}格式的字典,其中arg dict对应于关键字参数,

特别适用于没有本机Datetime支持的数据库,

例如SQLite。pandas.to_datetime()

chunksize:int,默认无

如果指定,则返回一个迭代器,其中chunksize是要包含在每个块中的行数。

返回:

数据帧

例如,

import MySQLdb
conn= MySQLdb.connect(host='myhost',port=3306,user='myusername', passwd='mypassword', 
                db='information_schema')
sql ="""
      SELECT
	danceability, energy, loudness, speechiness, acousticness,
	instrumentalness, liveness, valence, tempo, activity
      FROM songs s, users u, song_user su
      WHERE
	activity IS NOT NULL AND
	s.id = su.song_id AND
	su.user_id = u.id AND
	u.telegram_user_id = {}
""".format(telegram_id)

df_mysql = pd.read_sql_query(sql, conn) conn.close()