簡體   English   中英

將Pandas Dataframe編寫到MySQL

[英]Writing a Pandas Dataframe to MySQL

我正在嘗試將Python Pandas Dataframe寫入MySQL數據庫。 我知道這是可能的使用SQLAlchemy 為這個 ,但我不知道是否有另一種方式,可能會更容易,最好是已建成大熊貓。 我花了很多時間嘗試使用For循環,但它不可行。

如果有人知道更好的方式,我們將不勝感激。

非常感謝!

其他選項以SQLAlchemy的可用於to_sql但將來發行將被棄用,但現在的版本大熊貓0.18.1文件仍然有效。

根據pandas文檔pandas.DataFrame.to_sql,您可以使用以下語法:

DataFrame.to_sql(name, con, flavor='sqlite', schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None)

你指定con 類型/模式和味道'mysql' ,這里有一些描述:

con:SQLAlchemy引擎或DBAPI2連接(傳統模式)使用SQLAlchemy可以使用該庫支持的任何數據庫。 如果是DBAPI2對象,則僅支持sqlite3。

flavor:{'sqlite','mysql'},默認'sqlite'要使用的SQL的味道。 使用SQLAlchemy引擎時忽略。 'mysql'已棄用,將在以后的版本中刪除,但它將通過SQLAlchemy引擎進一步支持。

你可以使用pymysql來做到這一點:

例如,假設您有一個包含下一個用戶,密碼,主機和端口的MySQL數據庫,並且您希望在數據庫'data_2'中寫入。

import pymysql
user = 'root'
passw = 'my-secret-pw-for-mysql-12ud'
host =  '172.17.0.2'
port = 3306
database = 'data_2'

如果您已經創建了數據庫

conn = pymysql.connect(host=host,
                       port=port,
                       user=user, 
                       passwd=passw,  
                       db=database,
                       charset='utf8')

data.to_sql(name=database, con=conn, if_exists = 'replace', index=False, flavor = 'mysql')

如果您沒有創建數據庫,則在數據庫已存在時也有效:

conn = pymysql.connect(host=host, port=port, user=user, passwd=passw)

conn.cursor().execute("CREATE DATABASE IF NOT EXISTS {0} ".format(database))
conn = pymysql.connect(host=host,
                       port=port,
                       user=user, 
                       passwd=passw,  
                       db=database,
                       charset='utf8')

data.to_sql(name=database, con=conn, if_exists = 'replace', index=False, flavor = 'mysql')

類似主題:

  1. 使用SQLAlchemy,to_sql用pandas寫入MySQL數據庫
  2. 如何通過mysqldb將pandas數據幀插入數據庫?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM