#导入须要的包,使用pymysql操做数据库mysql
#pandas包很强大,能够直接读取数据表,建立dataframe数据结构,同时能够直接将dataframe导出到数据库sql
#sqlalchemy建立引擎,与数据库进行链接数据库
import pymysql
import pandas as pd
import sqlalchemy
from sqlalchemy import create_engine
from pandas import DataFrame数据结构
#把数据表导入数据库
def put_data(df1):
user = '***'
pwd = '***'
host = '***'
port = 3306
DB = '***'app
#引擎:也就是实体数据库链接。传入参数:数据库类型+链接库+用户名+密码+主机,字符编码
conn = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(user, pwd, host, port, DB)
conn1 = create_engine(conn)函数
#to_sql函数支持两类mysql引擎一个是sqlalchemy,另外一个是sqlliet3.没错,在你写入库的时候,pymysql是不能用的!!!mysqldb也是不能用的,你只能使用sqlalchemy或者sqlliet3!注意!!!to_sql函数并不在pd之中,而是在io.sql之中,是sql脚本下的一个类!!!因此to_sql的最好写法就是:
return pd.io.sql.to_sql(df1, name='***', con=conn1, if_exists='append')编码
#to_sql参数说明:(数据, '表名', con=链接键, schema='数据库名', if_exists='操做方式')? ? 操做方式有append、fail、replace、append:若是表存在,则将数据添加到这个表的##后面spa
df1 = pd.read_excel(r'***.xlsx')
put_data(df1)excel
#从数据库提取数据表
def get_data():
user = '***'
pwd = '***'
host = '***'
port = 3306
DB = '***'
conn = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(user, pwd, host, port, DB)
conn1 = create_engine(conn)
sql_cmd = 'SELECT * FROM ***'
return pd.read_sql(sql=sql_cmd, con=conn1)
df1 = get_data()
df1.to_excel(r'***.xlsx')orm