pandas 链接mysql、oracle数据库
一、mysql:
可以使用 pandas 库中的 read_sql 函数来连接 MySQL 数据库,读取数据库中的数据。步骤如下:
- 安装 pymysql 包:!pip install pymysql
- 导入 pandas、pymysql 包:import pandas as pd; import pymysql
- 创建数据库连接:conn = pymysql.connect(host=”localhost”, user=”root”, password=”password”, database=”database_name”)
- 构造 SQL 语句:sql = “SELECT * FROM table_name”
- 使用 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 包进行连接。
步骤如下:
- 安装 cx_Oracle 包:!pip install cx_Oracle
- 导入 pandas, cx_Oracle 包:import pandas as pd; import cx_Oracle
- 创建数据库连接:conn = cx_Oracle.connect(user=”username”, password=”password”, dsn=”host:port/database_name”)
- 构造 SQL 语句,例如:sql = “SELECT * FROM table_name”
- 使用 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 对象就可以分别处理各自的数据了。
为你推荐