实例
import pymysql
import pandas as pd
import numpy as np
from sqlalchemy import create_engine
df = pd.DataFrame([[1,"Bob",0],
[2,"Kim",1]],columns=["id","name","sex"])
df
id name sex
0 1 Bob 0
1 2 Kim 1
from sqlalchemy import create_engine
engine = create_engine("mysql://{}:{}@{}/{}?charset=utf8".format('username','password','host:port', 'database'))
con = engine.connect()
df.to_sql(name='students', con=con, if_exists='append', index=False)
df.to_sql参数介绍:
name:stringSQL表的名称。
con:sqlalchemy.engine.Engine或sqlite3.Connection使用SQLAlchemy可以使用该库支持的任何数据库。为sqlite3.Connection对象提供了旧版支持。
schema:string,optional指定架构(如果数据库flavor支持此)。如果为None,请使用默认架构。
if_exists:{'fail','replace','append'},默认'fail'如果表已存在,如何表现。失败:引发ValueError。
replace:在插入新值之前删除表。
append:将新值插入现有表。
index:布尔值,默认为True将DataFrame索引写为列。使用index_label作为表中的列名。
index_label:字符串或序列,默认为None索引列的列标签。如果给出None(默认)且 index为True,则使用索引名称。如果DataFrame使用MultiIndex,则应该给出一个序列。
chunksize:int,可选行将一次批量写入此大小。默认情况下,所有行都将立即写入。
dtype:dict,可选指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型或sqlite3传统模式的字符串。