将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
代碼:
總結
以上是生活随笔為你收集整理的将DataFrame格式的数据存入到mysql数据库中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 回溯 皇后 算法笔记_算法笔记-回溯法
- 下一篇: mysql的高阶用法_MySQL的经典用