ValueError:无效的MySQL标识符pandas to_sql

时间:2016-04-12 11:34:03

标签: python mysql pandas dataframe

我目前正在尝试运行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表的列,这个错误不应该发生吗?只有在列名不匹配时才会发生这种情况?

如果我错了,请纠正我。

0 个答案:

没有答案