文档
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的意思,如果表存在,把数据插入,如果表不存在创建一个表!!
仔细阅读文档很重要