小伙伴們好,Python讀取數據信息全自動載入MymySQL,這個需求在工作上是十分普遍的,主要包括到python操作數據庫,讀寫能力升級等,數據庫系統很有可能是mongodb、es,他的解決構思全是相近的,只需將操作數據庫的詞法拆換就可以。
本文會跟大家分享數據信息怎樣載入到mysql,分成2個情景,三種形式。
情景一:數據信息不用頻繁地載入mysql
使用navicat工具的使用導入到指導基本功能。適用各種文件類型,能夠根據文件的字段名全自動建表,還可以在已經有表格中插入數據,十分簡單方便。
情景二:信息是增加量的,要自動化技術并經常載入mysql
測試報告:csv格式,大概1200萬行
importpandasaspd data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv') data.shape
打印出結論
方式一
python+pymysql庫
組裝pymysql命令
pipinstallpymysql
代碼編寫:
importpymysql #數據庫服務器數據 conn=pymysql.connect( host='127.0.0.1', user='root', passwd='wangyuqing', db='test01', port=3306, charset="utf8") #分層解決 big_size=100000 #分層賦值載入到mysql withpd.read_csv('./tianchi_mobile_recommend_train_user.csv',chunksize=big_size)asreader: fordfinreader: datas=[] print('解決:',len(df)) #print(df) fori,jindf.iterrows(): data=(j['user_id'],j['item_id'],j['behavior_type'], j['item_category'],j['time']) datas.append(data) _values=",".join(['%s',]*5) sql="""insertintousers(user_id,item_id,behavior_type ,item_category,time)values(%s)"""%_values cursor=conn.cursor() cursor.executemany(sql,datas) conn.commit() #關閉服務 conn.close() cursor.close() print('存進成功!')
方式二
pandas+sqlalchemy:pandas要引入sqlalchemy來支撐sql,在sqlalchemy的大力支持,它能夠實現全部普遍數據庫類型的查看、升級等行為。
代碼編寫:
fromsqlalchemyimportcreate_engine engine=create_engine('mysql+pymysql://root:wangyuqing localhost:3306/test01') data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv') data.to_sql('user02',engine,chunksize=100000,index=None) print('存進成功!')
歸納
pymysql方式用時12分47秒,用時還非常的長,編碼數量多,而pandas只需五行屬性編碼就完成了這個需求,只花了4分鐘。
最終填補下,方式一要提前建表,方式二是不用。
因此建議大家應用另一種方式,非常方便又工作效率高。如果真感覺速度比較慢的小伙伴們,可以選擇添加線程同步、線程同步。
最全面的3種將它們存進到MymySQL方式:
立即存,運用navicat的導入到指導基本功能
Pythonpymysql
Pandassqlalchemy
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129043.html
文中關鍵給大家介紹是指Pandas二種少使用的讀取文件方式:載入在線文件的信息和載入剪切板的信息,感興趣的朋友能夠來了解一下吧一塊兒學習下 序言 小伙伴們好,我就是Peter~ 文中記載的是Pandas二種少使用的讀取文件方式: 載入在線文件的信息 載入剪切板的信息 申明:文中案例和在線數據僅限于學術研究共享 read_html 該函數公式表示是立即載入線上的html...
本文給大家介紹一類從視頻里獲取視頻幀的辦法,因為單核獲取視頻幀速率比較慢,因而接下來我們增強了線程同步的辦法,感興趣的朋友能夠出手試一試 Python迅速獲取視頻幀(線程同步) 現在詳細介紹一下一類從視頻里獲取視頻幀的辦法,因為單核獲取視頻幀速率比較慢,因而接下來我們增強了線程同步的辦法。 1、獲取視頻幀 獲取視頻幀關鍵用了Opencv控制模塊。 在其中: camera=cv2.V...
摘要:的安裝相關網址參照菜鳥教程創建文件夾說明目錄將映射為容器配置的數據文件存放路徑目錄將映射為容器的日志目錄目錄里的配置文件將映射為容器的配置文件查找上的鏡像這里我拉取官方的鏡像標簽這里看你需不需要自行配置的配置文件內容自行填寫這里不做介紹使 docker MySQL 的安裝 相關網址 : https://segmentfault.com/a/11...https://github.com...
摘要:的安裝相關網址參照菜鳥教程創建文件夾說明目錄將映射為容器配置的數據文件存放路徑目錄將映射為容器的日志目錄目錄里的配置文件將映射為容器的配置文件查找上的鏡像這里我拉取官方的鏡像標簽這里看你需不需要自行配置的配置文件內容自行填寫這里不做介紹使 docker MySQL 的安裝 相關網址 : https://segmentfault.com/a/11...https://github.com...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02