Jam*_*mes 7 mysql sql dataframe pandas
我在使用 pandas dataframe.to_sql 诊断错误时遇到问题
我首先使用以下方式建立连接connection = mysql.connector.connect
然后我尝试使用以下命令将数据插入 mysql 数据库
df.to_sql('SData', con = connection, if_exists = 'append', chunksize = 1000)
我收到错误:
Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Not all parameters were used in the SQL statement
SData 表和 df 具有相同的字段/名称,除了表有一个自动递增的主键,所以我唯一能想到的是,由于主键的原因,并非所有字段都匹配......
我也不明白为什么 to_sql 中会有一个 select 语句,除非它检查字段名称或类似性质的东西?
数据字段是:
Database:
SID Primary key
SSID int(foreign key)
FirstValue decimal
SecondValue decimal
DF:
FirstValue
SecondValue
SSID
Run Code Online (Sandbox Code Playgroud)
在输入此内容时,我意识到数据框的顺序不同。不认为这会成为问题,但会调查这一点
谢谢
Jam*_*mes 10
问题是我试图用作mysql.connector连接(引擎)并且必须将 sqlalchemy create_engine 与 mysql+pymysql 一起使用。
然后我必须 to_sql 创建一个索引字段,因此必须设置 index=False,并且它起作用了。
这是新字符串:
import pymysql
engine = create_engine("mysql+pymysql://" + Cfg.username + ":" + Cfg.password + "@" + Cfg.host + "/" + Cfg.database)
df.to_sql('SData', con = engine, if_exists = 'append',index = False, chunksize = 1000)
Run Code Online (Sandbox Code Playgroud)
谢谢