导入相关数据包:(使用版本python3.6.0,python2与python3的mysql数据包有所不同)
pip install pymysql
pip install sqlalchemy
假设我们已经完成的数据的相关操作,得到一个dataframe格式的df,现准备将数据结果保存/插入至mysql数据库,相关代码如下:
import pymysql
import pandas as pd
from sqlalchemy import create_engine
#建立连接,username替换为用户名,passwd替换为密码,test替换为数据库名
conn = create_engine('mysql+pymysql://username:passwd@localhost:3306/test',encoding='utf8')
#写入数据,table_name为表名,‘replace’表示如果同名表存在就替换掉
pd.io.sql.to_sql(df, "table_name", conn, if_exists='replace')
若我们想在pandas中查询mysql中相关数据,可使用如下代码:
import pandas as pd
import pymysql
#连接mysql数据库
db = pymysql.connect(host='127.0.0.1',port=3306,user=username,passwd=passwd,db=database)
#设置游标
cursor = db.cursor()
#编辑相关查询语句,由于python对于sql语句的纠错能力差,建议先在navicat执行一次查询后复制代码到此处
#长
sql = ''' select * from students where name = "李明" '''
#通过游标执行相关sql语句
cursor1.execute(sql)
#查询所有的查询结果,此处还可使用.fetchone()查询一个,.fetchmany()查询多个
data = cursor.fetchall()
#将查询结果转换成dataframe格式,若不需要可以删除
data = pd.DataFrame(list(data))
#关闭游标和数据库
cursor.close()
db.close()