📌  相关文章
📜  如何使用 pypyodbc 将 SQL 查询结果转换为 Pandas 数据框?

📅  最后修改于: 2022-05-13 01:55:09.758000             🧑  作者: Mango

如何使用 pypyodbc 将 SQL 查询结果转换为 Pandas 数据框?

在本文中,我们将了解如何使用Python中的 pypyodbc 模块将 SQL Query 结果转换为 Pandas Dataframe。

我们可能需要使用不同查询的表中的数据库结果来处理数据,并对数据应用任何机器学习来更好地分析事物和建议。我们可以将我们的数据转换为Python Pandas 数据框,以将不同的机器算法应用于数据。让我们看看如何使用 MS SQL 作为服务器将 SQL 查询结果发送到 Pandas Dataframe。

pypyodbc:纯Python跨平台ODBC接口模块。在终端中使用此命令安装 pypyodbc 模块以访问 ODBC 数据库。

pip install pypyodbc

创建数据库

第 1 步:创建数据库

CREATE DATABASE GeeksforGeeks;

第二步:使用数据库

USE GeeksForGeeks

步骤 3:创建表 student_marks 并将行添加到表中

CREATE TABLE student_marks(
stu_id VARCHAR(20),
stu_name VARCHAR(20),
stu_branch VARCHAR(20),
total_marks INT
)

将 SQL 查询转换为 Pandas 数据框

示例 1:

使用pdb.connect() 使用服务器名称和数据库名称连接到 MSSQL 服务器。然后使用read_sql()将 SQL 查询读入 pandas 数据帧并打印数据。

Python3
import pypyodbc as pdb 
import pandas as pd
  
connection = pdb.connect("""
    Driver={{SQL Server Native Client 11.0}};
    Server={0};
    Database={1};
    Trusted_Connection=yes;""".format('LAPTOP-LKHL8PKV',
                                      'GeeksForGeeks')
)
  
query = """SELECT * FROM student_marks"""
table = pd.read_sql(query, connection)
print(table)


Python3
import pypyodbc as pdb 
import pandas as pd
  
  
connection = pdb.connect("""
    Driver={{SQL Server Native Client 11.0}};
    Server={0};
    Database={1};
    Trusted_Connection=yes;""".format('LAPTOP-LKHL8PKV',
                                      'GeeksForGeeks')
)
  
query = """SELECT * FROM student_marks
           WHERE stu_branch='E.C.E'"""
table = pd.read_sql(query, connection)
print(table)


输出:

示例 2:查询从表中获取 ECE 分支的学生到 pandas 数据框。

Python3

import pypyodbc as pdb 
import pandas as pd
  
  
connection = pdb.connect("""
    Driver={{SQL Server Native Client 11.0}};
    Server={0};
    Database={1};
    Trusted_Connection=yes;""".format('LAPTOP-LKHL8PKV',
                                      'GeeksForGeeks')
)
  
query = """SELECT * FROM student_marks
           WHERE stu_branch='E.C.E'"""
table = pd.read_sql(query, connection)
print(table)

输出: