Python 的 pandas
库中,read_sql_query()
函数是一种非常有用的方法,它允许你直接从数据库执行 SQL 查询并将结果作为 DataFrame 对象返回。以下是一些使用 pandas.read_sql_query()
的常见操作方法的示例代码。
基本使用
首先,你需要安装必要的库(如果尚未安装的话):
pip install pandas sqlalchemy
然后,你可以用以下步骤来执行一个基本的 SQL 查询:
import pandas as pd
from sqlalchemy import create_engine
# 创建数据库连接
engine = create_engine('sqlite:///your_database.db') # SQLite 示例
# 使用 read_sql_query() 执行查询
query = "SELECT * FROM your_table"
df = pd.read_sql_query(query, engine)
print(df)
参数配置
read_sql_query()
函数提供了几个参数,可以根据需要进行配置:
sql
: SQL 查询字符串或者 SQLAlchemy Selectable(如 SQL Expression Language 表达式)。con
: 数据库连接对象,可以是 SQLAlchemy 连接引擎/连接对象或者 SQLite3 连接。index_col
: 用作结果 DataFrame 的索引列的列名或列的列表。coerce_float
: 将数值解析为浮点数,默认为True
。params
: 传递给 SQL 查询的参数,可以是列表、字典或元组。parse_dates
: 指定应该被解析为日期的列。chunksize
: 分块的行数,返回可迭代对象。
使用参数
例如,你可以使用参数来传递数据,这有助于防止 SQL 注入:
query = "SELECT * FROM your_table WHERE id = :id"
df = pd.read_sql_query(query, engine, params={"id": 1})
print(df)
解析日期
如果你的数据中包含日期,并且你想在读取时将其解析为日期类型:
query = "SELECT id, date_column FROM your_table"
df = pd.read_sql_query(query, engine, parse_dates=['date_column'])
print(df)
使用 chunksize
当处理大型数据库时,你可能想要分批次处理数据:
query = "SELECT * FROM your_table"
# 使用 chunksize
for chunk in pd.read_sql_query(query, engine, chunksize=100):
print(chunk) # 每个 chunk 是一个 DataFrame
参考文档:Python pandas.read_sql_query()常用操作方法代码-CJavaPy