pandas數據保存至Mysql資料庫

前言

好久沒寫文章了,你們想我了沒【我就是這樣,你習慣就好】

前段時間寫了兩篇mysql和python交互的文章

第一篇局限於導入一條數據進入資料庫【主要講的是面向對象編程和Python資料庫操作基礎】

傳送門:Python操作Mysql資料庫入門——查看和增加記錄

第二篇講的是從資料庫讀取數據到pandas【為數據分析做準備】

傳送門:Python操作Mysql資料庫入門——數據導入pandas(數據分析準備)

因為最近又在寫爬蟲,所以想把爬到的數據(dataframe格式)存在mysql里

終於在今天下午成功了

小試牛刀

import MySQLdbnimport pandas as pdnfrom sqlalchemy import create_enginennhost = 127.0.0.1nport = 3306ndb = testnuser = rootnpassword = ********nnengine = create_engine(str(r"mysql+mysqldb://%s:" + %s + "@%s/%s") % (user, password, host, db))nntry:n df = pd.DataFrame([[1,x],[2,y]],columns=list(ab))n df.to_sql(test1,con=engine,if_exists=replace,index=False)nexcept Exception as e:n print(e)n

註:需要你修改的部分:

(1)db是你本地資料庫的名稱(你用自己本地的資料庫名稱)

(2)password是你本地資料庫的密碼

這裡我創建了一個簡單的df用於測試:

結果運行成功:

本地資料庫自動新建了一個test1表,數據成功寫入,(我用的mysql客戶端軟體是:Navicat)

大顯身手

當然,我們平時數據清洗好的df或者爬蟲爬到的數據做成df怎麼保存到mysql呢?

其實現在看起來就很簡單了

當然,在這裡,我只教會大家怎麼保存df到mysql

如果大家對爬蟲和數據分析清洗有興趣,可以看我以前寫的文章

我打開了一個爬蟲爬到的房地產數據,如下圖:

我們看一下數據的df:

我們現在要將這個df寫入mysql,就好比爬到的數據或者清洗完的數據寫入mysql:

import MySQLdbnimport pandas as pdnfrom sqlalchemy import create_enginennhost = 127.0.0.1nport = 3306ndb = testnuser = rootnpassword = ********nnengine = create_engine(str(r"mysql+mysqldb://%s:" + %s + "@%s/%s") % (user, password, host, db))nntry:n df = pd.read_csv(house_data.csv)n df.to_sql(test1,con=engine,if_exists=replace,index=False)nexcept Exception as e:n print(e)n

註:需要你修改的部分:

(1)db是你本地資料庫的名稱(你用自己本地的資料庫名稱)

(2)password是你本地資料庫的密碼

運行結果是,捕獲到了異常:

意思大概是:一部分拉丁無法編碼,所以我們設置一下編碼方式:charset=utf8

import MySQLdbnimport pandas as pdnfrom sqlalchemy import create_enginennhost = 127.0.0.1nport = 3306ndb = testnuser = rootnpassword = ********nnengine = create_engine(str(r"mysql+mysqldb://%s:" + %s + "@%s/%s?charset=utf8") % (user, password, host, db))nntry:n df = pd.read_csv(house_data.csv)n df.to_sql(test1,con=engine,if_exists=replace,index=False)nexcept Exception as e:n print(e)n

註:需要你修改的部分:

(1)db是你本地資料庫的名稱(你用自己本地的資料庫名稱)

(2)password是你本地資料庫的密碼

只修改了這一行代碼:

engine = create_engine(str(r"mysql+mysqldb://%s:" + %s + "@%s/%s?charset=utf8") % (user, password, host, db))n

我們打開本地的資料庫,右鍵刷新:

已經可以看到,數據已經寫入mysql了

大家想要加其他功能可以參考:

pandas.pydata.org/panda

如有錯誤之處,請留言評論指出,謝謝~

作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。

出處:pandas數據保存至Mysql資料庫

配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享

公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。

小編主講: 雙十一,一小時破冰Python, 數據小白華麗轉身第一步 1小時破冰入門Python

推薦閱讀:

MySQL訓練——Self join@sqlzoo.net
為何Redis用樂觀鎖,而MySQL資料庫卻沒有?
為什麼我不再看好MariaDB
MYSQL及MySQL WORKBENCH安裝過程遇到的問題及處理方法

TAG:Python | MySQL | Python教程 |