python 3.x - How to write a pandas dataframe as a table into a MySQL database? -


just quick question guys: created darabase in mysql (opinions):

mysql> show databases; +--------------------+ | database           | +--------------------+ | information_schema | | mysql              | | opinions           | | performance_schema | | sys                | +--------------------+ 5 rows in set (0.06 sec) 

i have pandas dataframe df:

import pandas pd df = pd.read_csv('file.csv', sep='|', names=['id', 'opinions']) df.head(3) 

out:

    id content 0   id1 'blablababla 1   id2 'blalbabla ... n   idn 'blalbabl 

then, load df table (items) opinions database. tried:

import mysql.connector sqlalchemy import create_engine  engine = create_engine('mysql+mysqlconnector://user:password@localhost:3306/opinions', echo=false) df.to_sql(name='items', con=engine, if_exists = 'replace', index=false) df 

however, got exception:

operationalerror: (mysql.connector.errors.operationalerror) 2055: lost connection mysql server @ 'localhost:3306', system error: 32 broken pipe 

how should load or write table df opinions database?

on mysql server opinions not table, database (as show databases implies), collection of tables. can issue select statements on tables however.

you can check tables e.g. exist via show tables in opinions. it's convenient add database argument connection:

config = {     'user' : 'root',     'passwd' : 'password',     'host' : 'localhost',     'raise_on_warnings' : true,     'use_pure' : false,     'database' : 'opinions'     } con = mysql.connector.connect(**config) 

this results in table references targeted @ tables in opinions database. plain select on existing table should work:

data = pd.read_sql('select * <some_table_name>', con)