pandas提取mysql数据库,【数据分析师_04_Python数据分析基础】007_Pandas基础(MySQL 数据库数据内容的读取和写入)...

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')

f64beddb0fecf0b4d681eb1ae1088c23.png

7.2 读取 MySQL的数据

7.2.1 两种方式读取 MySQL的 Table

1、使用 Python语句的方式读取 table

df = pd.read_sql_table('customers', engine)# 把上面的 engine放进来

3e313eb06696974f5bdd2443e02343ad.png

2、使用 SQL语句的方式读取 table

query = '''

SELECT * FROM customers;

'''

df_sql = pd.read_sql_query(query, engine)# 把上面的 engine放进来

a1856e2238362cd9e6ed08d5d8717a6e.png

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

dbb205260f0ce31dcbe50d5edf657c81.png

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索引添加到数据库中

)

3f35e6fce2ef9e063a8d3d9b466c8cb5.png

这就添加成功了:

52db2f9aeed0a1d3c417f42622fb9ee2.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值