[英]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')
類似主題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.