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的意思,如果表存在,把数据插入,如果表不存在创建一个表!!
上一篇下一篇

猜你喜欢

热点阅读