我在pandas dataframe df中有一个表。
我想把它写入数据库。所以我使用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 :(得分:0)
也许你传递了一个错误的变量。您确定要将字符串传递给MySQL而不是列表吗?
编辑:我想你可以尝试这样做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
)并且必须从mysql website下载sqlconnector
告诉我你是否需要别的东西。