Python Pandas read_sql_query函数使用详解与实战

周叙
周叙
发布时间:2026-10-14| 4人浏览过
原创

本文深入解析Python Pandas库中read_sql_query函数的使用方法。详细说明了如何将SQL查询结果高效转换为DataFrame,并逐一解读sql、con、index_col、coerce_float、params及parse_dates等关键参数的配置技巧。结合MySQL连接实例,展示如何安全传递参数并处理日期格式,帮助开发者快速掌握数据库交互与数据清洗的核心技能。

Pandas是建立在NumPy基础之上的数据分析工具,旨在简化数据处理任务。它集成了众多库和标准数据模型,提供了处理大规模数据集所需的高效工具。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:字符串或SQLAlchemy Selectable对象(如select语句或文本对象),代表需要执行的SQL查询语句。

con:SQLAlchemy连接对象(引擎或连接实例)、数据库字符串URI,或sqlite3的DBAPI2连接。使用SQLAlchemy可以支持该库兼容的任何数据库;若使用DBAPI2对象,则仅支持sqlite3。

index_col:字符串或字符串列表,可选参数,默认值为None。

指定需要设置为索引的列(支持多级索引MultiIndex)。

coerce_float:布尔值,默认为True。

尝试将非字符串、非数字类型的对象(例如decimal.Decimal)的值转换为浮点数。

这一功能对处理SQL结果集非常有用。

params:list、tuple或dict类型,可选参数,默认值为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:整数类型,默认值为None。

如果指定了该参数,函数将返回一个迭代器。chunksize定义了每个数据块中包含的行数,适用于处理大型数据集。

返回值:

返回一个DataFrame对象。

以下是一个具体示例:


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

到此这篇关于Python Pandas read_sql_query函数实例用法分析的文章就介绍到这了,更多相关Python Pandas read_sql_query函数内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。