从 pandas 数据帧创建 MySQL Table - 错误 1054 (42S22)
Create MySQL Table from pandas dataframe - error 1054 (42S22)
我创建了一个数据框 df
,如下所示:
df = pd.DataFrame(list(zip(product_urlList, nameList, priceList, picList)),
columns =['URL','NomProduit', 'Prix', "LienPic"])
df['IdUnique'] = df['NomProduit'] + df['Prix']
我的目标是将其导入 MySQL 数据库。
我创建了一个 SQL 数据库(称为 "Sezane"),它的 table 通过 Python 和 MySQL.connector 称为 "Robes"。
import mysql.connector as mysql
db = mysql.connect(
host = "localhost",
user = "root",
passwd = "password",
database = "sezane"
)
cursor = db.cursor()
cursor.execute('CREATE TABLE Robes (id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, Nom_Robes VARCHAR(255), Prix_Robes VARCHAR(255), liens_Robes VARCHAR(300), Images_robes VARCHAR (300), Id_Robes VARCHAR (255))'
然后,我尝试将此数据框插入 table :
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqlconnector://root:password@Localhost:3306/sezane', echo=True)
df.to_sql(name='Robes', con=engine, if_exists = 'append')
我有以下错误:
ProgrammingError: (mysql.connector.errors.ProgrammingError) 1054 (42S22): Unknown column 'index' in 'field list'
我对这个错误做了一些研究,发现它可能成为引号括号“/”插入的问题。
然而,经过几个小时的研究,我仍然不明白它是从哪里来的。为什么有关 "Index" 的错误消息?
我的目标是让我的 df
成为 table。
默认情况下 to_sql
尝试将数据帧索引导出为列。你应该能够改变这个:
df.to_sql(name='Robes', con=engine, if_exists = 'append')
为此:
df.to_sql(name='Robes', con=engine, if_exists = 'append', index = False)
你将不会再遇到同样的错误。
我创建了一个数据框 df
,如下所示:
df = pd.DataFrame(list(zip(product_urlList, nameList, priceList, picList)),
columns =['URL','NomProduit', 'Prix', "LienPic"])
df['IdUnique'] = df['NomProduit'] + df['Prix']
我的目标是将其导入 MySQL 数据库。
我创建了一个 SQL 数据库(称为 "Sezane"),它的 table 通过 Python 和 MySQL.connector 称为 "Robes"。
import mysql.connector as mysql
db = mysql.connect(
host = "localhost",
user = "root",
passwd = "password",
database = "sezane"
)
cursor = db.cursor()
cursor.execute('CREATE TABLE Robes (id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, Nom_Robes VARCHAR(255), Prix_Robes VARCHAR(255), liens_Robes VARCHAR(300), Images_robes VARCHAR (300), Id_Robes VARCHAR (255))'
然后,我尝试将此数据框插入 table :
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqlconnector://root:password@Localhost:3306/sezane', echo=True)
df.to_sql(name='Robes', con=engine, if_exists = 'append')
我有以下错误:
ProgrammingError: (mysql.connector.errors.ProgrammingError) 1054 (42S22): Unknown column 'index' in 'field list'
我对这个错误做了一些研究,发现它可能成为引号括号“/”插入的问题。
然而,经过几个小时的研究,我仍然不明白它是从哪里来的。为什么有关 "Index" 的错误消息?
我的目标是让我的 df
成为 table。
默认情况下 to_sql
尝试将数据帧索引导出为列。你应该能够改变这个:
df.to_sql(name='Robes', con=engine, if_exists = 'append')
为此:
df.to_sql(name='Robes', con=engine, if_exists = 'append', index = False)
你将不会再遇到同样的错误。