Pandas基础
注:以下使用 Jupyter Notebook 演示
7 数据库数据内容的读取和写入
数据库除了之前介绍的csv、excel类数据外,也是可以利用pandas直接操作的数据来源
pandas.read_sql 可以在数据库中执行指定的SQL语句查询或对整张表进行查询,以DataFrame 的类型返回查询结果,这是在跟数据库进行交互操作时很重要的一步:既读取数据,还返回DataFrame方便处理
思路:把 Pandas作为出具处理的过程,把 MySQL作为数据存储的仓库
重点:构建 engine(存储服务器和用户信息)和 query(存储 MySQL查询语句)放入 pd.read_sql_query() 操作
7.1 利用sql接口访问数据库
# 首先从服务打开 MySQL服务器
# !pip install pymysql
# !pip install flask-SQLAlchemy# 安装用到的两个库
import pandas as pd
import sqlalchemy
# 用的是 mysql+和 pymysql的驱动,账户root,密码,服务器位置,用到的db
# 在这里构建一个 engine,用于之后的查询
# 如果有多个数据库账户或者接口,创建多个 engine即可
engine = sqlalchemy.create_engine('mysql+pymysql://root:1235@localhost:3306/erp')
7.2 读取 MySQL的数据
7.2.1 两种方式读取 MySQL的 Table
1、使用 Python语句的方式读取 table
df = pd.read_sql_table('customers', engine)# 把上面的 engine放进来
2、使用 SQL语句的方式读取 table
query = '''
SELECT * FROM customers;
'''
df_sql = pd.read_sql_query(query, engine)# 把上面的 engine放进来
7.2.2 使用 MySQL的 Query功能读取特定数据
# 使用 SQL语句的方式读取 table中的内容
query = '''
SELECT * FROM customers WHERE `cust_name` = 'Mouse House';
'''
df2 = pd.read_sql_query(query, engine)# 把上面的查询语句 query和 engine放进来
df2
7.3 使用to_sql进行数据写入
为了测试 to_sql,先创建一个空的表格,然后把查询到的,或者新的内容放进去
在 MySQL-NewQuery 中键入一下内容以新建一张空 Table:
CREATE TABLE customers2 AS SELECT * FROM customers;
DELETE FROM customers2;
然后在 Python中将数据录入到新表 customers2中:
df2.to_sql(
name = 'customers2',# 添加到的表名为 customers2
con = engine,# 用 engine中的账号连接,con是 connection的意思
if_exists = 'append',# 插入到最后
index = False# 不把 index索引添加到数据库中
)
这就添加成功了: