使用MySQL的Pandas 0.20.2 to_sql()

时间:2017-07-05 18:39:39

标签: python mysql pandas pandas-to-sql

我试图将数据帧写入MySQL表但收到(111 Connection refused)错误。

我按照接受的答案: Writing to MySQL database with pandas using SQLAlchemy, to_sql

回答代码:

import pandas as pd
import mysql.connector
from sqlalchemy import create_engine

engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False)
data.to_sql(name='sample_table2', con=engine, if_exists = 'append', index=False)

...且create_engine()行无错误地工作,但to_sql()行因此错误而失败:

(mysql.connector.errors.InterfaceError) 2003: Can't connect to MySQL server on 'localhost:3306' (111 Connection refused)

我如何连接到我的MySQL数据库/表并不是真正相关的,所以我们非常感谢完全不同的答案,但鉴于deprecation of the MySQL 'flavor' in pandas 0.20.2,将数据帧写入MySQL的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

感谢@AndyHayden的提示,this answer就是诀窍。基本上用mysqlconnector取代mysqldb是关键。

engine = create_engine('mysql+mysqldb://[user]:[pass]@[host]:[port]/[schema]', echo = False)
df.to_sql(name = 'my_table', con = engine, if_exists = 'append', index = False)

[schema]是数据库名称,在我的特定情况下,:[port]被省略[host]localhost