将DataFrame格式的数据存入到mysql数据库中

       因为最近频繁操作数据库,特别是写入数据比较麻烦。在DataFrame格式或者是Series格式的数据处理之后,总是会面临写入数据,迫不得已只能进行格式转换,搜索过程中发现了to_sql()函数,就百度了用法,并实现了一下,以下记录操作过程和遇到的问题及解决方法。

 First:函数介绍

 to_sql(frame, name, con, schema=None, if_exists='fail', index=True,
           index_label=None, chunksize=None, dtype=None)

frame:dataframe数据的名字

name:需要操作的数据库的表名

con:连接数据库的语句,包括(localhost,root,password,database)

if_exists:(fail,replace,append)

          fail:如果表存在,则不进行操作

          replace:如果表存在就删除表,重新生成,插入数据

          append:如果表存在就插入数据,不存在就直接生成表

在使用这个函数之前我们需要用到create_engine

  •                                               
  • 该数据里边,root:root是用户名和密码,localhost是地址,test是数据库。
  • 因为我之前一直用的pymysql,有人跟我说不用安装mysqldb,直接在mysql+pymysql就行,我的实验是成功了,但是可能因为之前就成功了,才成功的,你们可以试试。

我的环境是python3.6的Spyder工具,因为好多人都说MySqlDb在3.6的环境下没有了,都让安装mysqlclient,我这里的安装时1.3.13版本的。安装时我直接下载的https://www.lfd.uci.edu/~gohlke/pythonlibs/的文件:

因为找了好多教程,我还安装了mysql-python,导致版本冲突。后来卸载了,又重新安装mysqlclient才运行成功。

安利一个好用的函数:

read_sql_query()

sql:需要操作的语句,

con:数据库的连接

直接可以在数据库中读取dataframe格式的数据,也方便读操作和pandas分析。

Second:增加Oracle版本

参考网址:

https://docs.sqlalchemy.org/en/13/dialects/oracle.html#module-sqlalchemy.dialects.oracle.cx_oracle

代码:

猜你喜欢

转载自blog.csdn.net/qq_28409193/article/details/81099724