当前位置 博文首页 > Python Pandas pandas.read_sql_query函数实例用法分析

    Python Pandas pandas.read_sql_query函数实例用法分析

    作者:cjavapy 时间:2021-08-01 18:12

    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()
    jsjbwy
    下一篇:没有了