作者 | Tao
来源 | 知乎
本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作。
先看一下最常见的操作:
从数据库中select需要的字段(对数据简单聚合处理)
将查找的数据导出为本地文件(csv、txt、xlsx等)
通过pandas的read_excel(csv、txt)将本地文件转化成python中的变量,并对数据进行相应的处理和分析
将处理好的数据通过pandas的to_excel(csv、txt)导出为本地文件
将mysql中的数据导入到python中
利用python处理分析数据
导出成excel报表
第一种方法:read_sql
第二种方法:pymysql
先看一下我们今天的数据库信息: host:192.168.0.*** port:3306 user:root 密码:********

数据库:test 表名:weather_test 字段及数据:


1
read_sql()
read_sql(sql,con,index_col='None',coerce_float='True',params='None',parse_dates='None',columns='None',chunksize:None='None')
复制
sql:需要执行的sql语句 con:连接数据库所需的engine,用其他数据库连接的包建立,例如SQLalchemy和pymysql index_col: 选择哪列作为index coerce_float:将数字形字符串转为float parse_dates:将某列日期型字符串转换为datetime型数据 columns:选择想要保留的列 chunksize:每次输出多少行数据

import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:******@192.168.0.***:3306/test')
sql='''
select * from weather_test where
create_time between '2020-09-21' and '2020-09-22'
and city in ('杭州','上海')
'''
df = pd.read_sql(sql,engine)
df复制

2
PyMySQL
1.安装

2.利用pymysql操作数据库
import pandas as pd
import pymysql复制
import pandas as pd
import pymysql
# 打开数据库连接
db = pymysql.connect("192.168.0.***", "root", "******", "test", charset='utf8' )复制
import pandas as pd
import pymysql
# 打开数据库连接
db = pymysql.connect("192.168.0.***", "root", "******", "test", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()复制
DictCursor:返回字典(Dict)格式的数据 SSCursor:流式游标返回元组(Tuple)格式数据 SSDictCursor:流式游标返回字典(Dict)格式数据
使用其他游标时,只用在cursor()方法中加入相应的参数即可
cursor = db.cursor(pymysql.cursors.SSDictCursor)
复制

fetchall():返回所有数据 fetchone():返回下一条数据 fetchmany(size):返回下size个数据



import pandas as pd
import pymysql
# 打开数据库连接
db = pymysql.connect("192.168.0.***", "root", "******", "test", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
sql = """
select * from weather_test
where create_time between '2020-09-21' and '2020-09-22'
and city in ('上海','杭州')
"""
cursor.execute(sql)
cds = cursor.fetchall()
weather = pd.DataFrame(list(cds),columns=['ID','时间','省份','城市','最高温度','最低温度','白天天气','夜间天气','风力','风向'])
cursor.close() # 关闭游标
db.close() # 关闭数据库连接复制
- END -
本文为转载分享&推荐阅读,若侵权请联系后台删除
Python数据分析实例
文章转载自Python数据分析实例,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1411次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
535次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
490次阅读
2025-03-13 14:38:19
SQL优化 - explain查看SQL执行计划(一)
金同学
420次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
413次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
362次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
337次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
300次阅读
2025-03-28 16:28:31
墨天轮个人数说知识点合集
JiekeXu
292次阅读
2025-04-01 15:56:03
MySQL8.0直方图功能简介
Rock Yan
253次阅读
2025-03-21 15:30:53