文档
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html

to_sql的写法:

pd.io.sql.to_sql(df1,tablename,con=conn,if_exists='repalce')

第一个参数thedataframe是需要导入的pd dataframe,

第二个参数tablename是将导入的数据库中的表名

第三个参数yconnect是启动数据库的接口,pd 1.9以后的版本,除了sqllite,均需要通过sqlalchemy来设置

第四个参数databasename是将导入的数据库名字

第五个参数if_exists='append'的意思是,如果表tablename存在,则将数据添加到这个表的后面

如果使用网上举出的如下方式

df.to_sql(tablename,con=conn,if_exists='append',index=False)

你会发现WTF为原来的数据都没有了!!

这就是to_sql的第二个坑if_exists字段:

如果按照网上举例,将if_exists字段定义为‘replace’或者‘fail’,要么发现原来数据没有了,要么发现什么时候都没有做!

fail的意思如果表存在,啥也不做

replace的意思,如果表存在,删了表,再建立一个新表,把数据插入

append的意思,如果表存在,把数据插入,如果表不存在创建一个表!!

仔细阅读文档很重要