pandas操作mysql数据库
2020-07-11 本文已影响0人
王文强Python
1、将查询到的数据转成datafram
fields_store =('a','b','c','e','f','g')
sql_store = "SELECT %s,%s,%s,%s,%s,%s FROM 表名"%fields_store
result_store = dbcur.db_qurey(sql_store)
df_store = pd.DataFrame(list(result_store))
df_store.columns = fields_store
df_store = df_store.astype(object).where(pd.notnull(df_store), '')
2、datafram 插入数据库第一种方法:
insert_sql = "insert into 表名 (`a`,`b`,`c`,`d`,`e`,`f`,`g`) values (%s,%s,%s,%s,%s,%s,%s)"
testlist = [tuple(test) for test in df.values]
cur.executemany(insert_sql,testlist)
3、datafram 插入数据库第二种方法:
import sqlalchemy
conn=sqlalchemy.create_engine('mysql+pymysql://username:passwd@localhost:3306/test',encoding='utf8') #创建连接
pd.io.sql.to_sql(frame=df,name='iris',con=conn.connect(),if_exists='append',schema=‘数据库库名’,index=False)
参数说明:
frame: 指的是数据Dataframe型
name: 指将要放的数据库表名
con: 数据库连接
schema: 数据库库名
index:dataframe行数index,默认为True
if_exists: 其中有下面三个参数供选择
fail的意思如果表存在,啥也不做
replace的意思,如果表存在,删了表,再建立一个新表,把数据插入
append的意思,如果表存在,把数据插入,如果表不存在创建一个表!!