步骤:
- 导入包
- 写sql语句
- 编写引擎:
engine=sqlalchemy.create_engine('mysql+pymysql://root:123@localhost:3306/db1')
root是用户名,123是密码,@是本地地址,3306是端口,db1是库名 - 读取是
pd.read_sql(sql,engine,)
- 写入是
to_sql('mydf2',engine,index=False)
mydf2是存在mysql里的文件名
实例
读取mysql
import pandas as pd
import sqlalchemy
sql='select * from student'
engine = sqlalchemy.create_engine('mysql+pymysql://root:123@localhost:3306/db1')
df = pd.read_sql(sql,engine,)
# 函数化
def read(query,db='db1'):
sql=query
engine = sqlalchemy.create_engine('mysql+pymysql://root:123@localhost:3306/{0}'.format('db1'))
df = pd.read_sql(sql,engine,)
return df
d2 = read('show tables')
print(d2)
存储mysql
df=pd.read_csv("DataAnalyst.csv",encoding='gbk')
# python默认就是utf,默认是逗号分割,根据文件样式设置 encoding='gbk'
df.to_sql('mydf2',engine,index=False)# 还有参数if_exists,表示有则插入,没有则创建,写入mysql里会有字符类型不一致的问题
# 在数据库中建表,主键,自增之类的,先建好表,字段对应上。