pandas 链接mysql、oracle数据库

一、mysql:

可以使用 pandas 库中的 read_sql 函数来连接 MySQL 数据库,读取数据库中的数据。步骤如下:

  1. 安装 pymysql 包:!pip install pymysql
  2. 导入 pandas、pymysql 包:import pandas as pd; import pymysql
  3. 创建数据库连接:conn = pymysql.connect(host=”localhost”, user=”root”, password=”password”, database=”database_name”)
  4. 构造 SQL 语句:sql = “SELECT * FROM table_name”
  5. 使用 pandas 的 read_sql 函数从数据库中读取数据并转换为 DataFrame:df = pd.read_sql(sql, conn)

将上述代码整合如下:

import pandas as pd
import pymysql

conn = pymysql.connect(host="localhost", user="root", password="password", database="database_name")
sql = "SELECT * FROM table_name"
df = pd.read_sql(sql, conn)

二、oracle数据库

可以使用 Pandas 库中的 read_sql 函数从 Oracle 数据库中读取表,并将其转换为 Pandas 的 DataFrame。需要借助 cx_Oracle 包进行连接。

步骤如下:

  1. 安装 cx_Oracle 包:!pip install cx_Oracle
  2. 导入 pandas, cx_Oracle 包:import pandas as pd; import cx_Oracle
  3. 创建数据库连接:conn = cx_Oracle.connect(user=”username”, password=”password”, dsn=”host:port/database_name”)
  4. 构造 SQL 语句,例如:sql = “SELECT * FROM table_name”
  5. 使用 pandas 的 read_sql 函数从数据库中读取数据并转换为 DataFrame:df = pd.read_sql(sql, conn)

将上述代码整合如下:

import pandas as pd
import cx_Oracle

conn = cx_Oracle.connect(user="username", password="password", dsn="host:port/database_name")
sql = "SELECT * FROM table_name"
df = pd.read_sql(sql, conn)

如果要读取多张数据库表,需要将每个表的读取结果存入不同的 DataFrame 中。可以将上面提到的步骤封装为一个函数,通过传入不同的 SQL 语句和 DataFrame 名称,实现读取多张数据库表。

import pandas as pd
import pymysql

def read_table(sql, df_name):
    conn = pymysql.connect(host="localhost", user="root", password="password", database="database_name")
    df_name = pd.read_sql(sql, conn)
    conn.close()
    return df_name

sql1 = "SELECT * FROM table1"
df1 = read_table(sql1, 'df1')

sql2 = "SELECT * FROM table2"
df2 = read_table(sql2, 'df2')

在调用 read_table 函数时,传入不同的 SQL 语句和 DataFrame 名称,读取并存储不同的数据库表。这样每个 DataFrame 对象就可以分别处理各自的数据了。

   
 
 

为你推荐
Ta的个人站点

mb发布文章164篇


imcn微信公众号

分类