2016-11-17 5 views
0

У меня есть таблица в dataframe df.Ошибка при сохранении базы данных pandas в базе данных msql

enter image description here

я хочу, чтобы написать это в базу данных. поэтому я использую df.to_sql, но получаю ошибку. Я использую MySQLdb.

import MySQLdb 
conn = MySQLdb.connect(host="1xx.xxx.x.xxx", user="uname", passwd="123", db="dbname") 
cursor = conn.cursor() 

df.to_sql(con=conn, name='table_name', if_exists='replace', flavor='mysql') 

, но я получаю сообщение об ошибке: OperationalError: (1241, 'Operand should contain 1 column(s)')

Любые идеи/решения, почему это происходит? заранее заранее

ответ

0

Возможно, вы передали неправильную переменную. Вы уверены, что передаете строки в MySQL вместо списков?

EDIT: Я думаю, вы можете попробовать, как этот

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

col1 = 123, 676, 93 
col2 = 3245, 35346, 32 
frequency = 2, 84, 9 

dataset = list(zip(col1,col2,frequency)) 

df = pd.DataFrame(data = dataset, columns=['col1', 'col2', 'frequency']) 

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

Вам необходимо установить SQLAlchemy (pip install sqlalchemy), и вы должны скачать sqlconnector от mysql website

Скажите мне, если вам нужно что-то другое.

+0

i did not get you – Shubham

+0

Можете ли вы опубликовать пример своего фреймворка? – andrepogg

+0

Вы можете изменить это значение 'df.to_sql (con = conn, name = 'table_name', if_exists = 'replace', flavor = 'mysql')' – andrepogg