Python Pandas pandas.read_sql_query函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。pandas.read_sql_query 是 Python Pandas 库中的一个函数,用于从数据库中执行 SQL 查询并将结果直接加载到 pandas 的 DataFrame 中。这个函数非常实用,因为可以利用 SQL 语句的强大功能来进行数据筛选、处理,之后在 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:listtupledict,可选的,默认为:None

要传递给执行方法的参数列表。用于传递参数的语法取决于数据库驱动程序。

检查数据库驱动程序文档,

了解PEP 249的paramstyle中描述的五种语法样式中的哪一种。例如,

对于psycopg2,使用%(name)s

所以使用params = {'name':'value'}

parse_dateslistdict,默认值: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是要包含在每个块中的行数。

返回:

DataFrame

例如,

1)MySQLdb

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()

2)sqlite3

import pandas as pd
import sqlite3

# 创建与数据库的连接
conn = sqlite3.connect('example.db')

# 定义 SQL 查询
query = """
SELECT * FROM employees
WHERE department = 'Sales';
"""

# 使用 read_sql_query 执行查询并加载到 DataFrame
df = pd.read_sql_query(query, conn)

# 查看 DataFrame
print(df)

# 关闭连接
conn.close()

推荐阅读
cjavapy编程之路首页