我目前正在尝试运行pandas.to_sql()将数据帧直接推送到表。我是否需要预先创建表格?
我正在使用以下内容动态创建表:
schema = "CREATE TABLE IF NOT EXISTS `{}` (".format(self.out_tbl)
for column in df.columns.tolist():
if column == 'timestamp':
schema += "`" + column + "` DATETIME DEFAULT NULL UNIQUE"
else:
schema += ",`" + column + "` FLOAT DEFAULT NULL"
schema += ", PRIMARY KEY (timestamp)) ENGINE=InnoDB DEFAULT CHARSET=latin1;"
return schema
然后,返回架构,并使用以下命令将数据帧推送到表:
data_to_tbl.to_sql(name=self.out_tbl, con=db, flavor='mysql', if_exists='append', index=False, index_label='timestamp')
使用以下ablove 2代码,我面临以下错误:
ValueError: Invalid MySQL identifier 'cpu_ma100mlvnav001-FastFourierTransform Score'
请注意,“ cpu_ma100mlvnav001-FastFourierTransform得分”是我的数据框中的第3列,位于'timestamp'和'cpu_ma100mlvnav001'之后,并且是数据框和表格中的有效列。另外,由于我使用数据框的列名创建mysql表的列,这个错误不应该发生吗?只有在列名不匹配时才会发生这种情况?
如果我错了,请纠正我。