Python数据读取操作pd.read_sql_query()与cursor.execute()的区别
·
常见的种Pyton 数据处理方式:
方式一:cursor.execute(sql_query) 和 cursor.fetchall()
# 构建SQL查询语句
sql_query = f"SELECT 时间, 城市, GDP FROM table_1 WHERE date >= '{start_date}' AND date <= '{end_date}'"
# 执行SQL查询
cursor = conn.cursor()
cursor.execute(sql_query)
results = cursor.fetchall()
# 处理查询结果
df = pd.DataFrame(results, columns=['时间', '城市', 'GDP'])
cursor.execute(sql_query)和results = cursor.fetchall()是Python中标准库sqlite3模块中的方法,用于执行SQL查询并获取查询结果。使用这种方式时,
需要首先创建一个cursor对象,
然后使用该对象的execute()方法执行SQL查询。
执行查询后,可以使用fetchall()方法获取查询结果,该方法返回一个包含所有查询结果的列表。
然后,可以将该列表转换为Pandas DataFrame,并指定DataFrame的列名。
使用这种方式执行SQL查询需要更多的代码,但是可以更加灵活地控制查询过程和结果的处理。
方式二:pd.read_sql_query()
# 查询MySQL数据
query = f"SELECT date, metric1, metric2 FROM your_table WHERE date >= '{start_date}' AND date <= '{end_date}'"
df = pd.read_sql_query(query, conn)
是Pandas库中的一个函数,它可以直接执行SQL查询并将查询结果存储在一个Pandas DataFrame中。该方法的参数包括SQL查询语句和数据库连接对象。使用该方法时,不需要创建cursor对象或者调用fetchall()方法获取查询结果,因为该方法会自动完成这些操作。因此,使用pd.read_sql_query()方法可以更加简洁和方便地执行SQL查询并将结果转换为DataFrame。
总的来说,
pd.read_sql_query()方法更加简单和直接,适用于简单的SQL查询和结果转换;而cursor.execute()和fetchall()方法更加灵活,适用于需要更多控制和处理的复杂查询。
更多推荐




所有评论(0)