Python/MariaDB:将.csv数据转换为数据帧并导出到数据库

Python/MariaDB:将.csv数据转换为数据帧并导出到数据库,python,mysql,dataframe,mariadb,Python,Mysql,Dataframe,Mariadb,对于我正在进行的一个项目,我试图读取存储为csv文件的传感器数据,并将其发送到数据库。经过一些讨论,我们意识到将.csv数据转换为数据帧对于数据库的审计来说是最容易的。我已经成功地将数据转换为数据帧(耶!),但是在将数据帧导出到数据库时遇到了问题。这是我的密码: #first we must convert the data into a dataframe import pandas as pd fileName = 'testing1.csv' df = pd.read_csv('C:/U

对于我正在进行的一个项目,我试图读取存储为csv文件的传感器数据,并将其发送到数据库。经过一些讨论,我们意识到将.csv数据转换为数据帧对于数据库的审计来说是最容易的。我已经成功地将数据转换为数据帧(耶!),但是在将数据帧导出到数据库时遇到了问题。这是我的密码:

#first we must convert the data into a dataframe
import pandas as pd 
fileName = 'testing1.csv'
df = pd.read_csv('C:/Users/danie/Desktop/testing1.csv')

#Now we must send
from sqlalchemy import create_engine
engine = create_engine('mysql://root:mysecretpassword6@localhost:mysecrethost/mysecretdatabasename') 
#change to connect your mysql

df.to_sql(name='dataframes',con=engine,if_exists='append',index=False) 
当我尝试发送数据帧时,出现以下错误:

_mysql_exceptions.OperationalError) (1054, "Unknown column '10' in 'field 
list'") [SQL: 'INSERT INTO dataframes (`10`, `25`, `25.1`, `25.2`, `25.3`, 
`25.4`) VALUES (%s, %s, %s, %s, %s, %s)'] [parameters: ((20, 486, 486, 486, 
486, 486), (30, 286, 286, 286, 286, 286), (40, 286, 286, 286, 286, 286), (50, 
289, 289, 289, 289, 289), (60, 262, 262, 262, 262, 262), (70, 5, 5, 5, 5, 5), 
(80, 154, 154, 154, 154, 154), (90, 5151, 5151, 5151, 5151, 5151)  ... 
displaying 10 of 13 total bound parameter sets ...  (130, 181, 181, 181, 181, 
181), (140, 151, 151, 151, 151, 151))] (Background on this error at: 
http://sqlalche.me/e/e3q8)
错误的背景并不能帮助我解决问题。但我发现了一个问题。如果我在python上打印数据帧(df),我会得到: 现在这是一个问题,因为我创建数据帧的test.csv文件没有相同的数据。这是一张图片:

我将尝试创建一个新文件并测试它是否有效,但我在数据库中创建了所有正确的列。我不明白为什么数据框从.csv中读取不存在的值。或者我没有看到我的代码有任何错误

我真的很感激任何能帮助我克服这个错误的方法

非常感谢

edit1:我应该注意,这不是真实的传感器数据。这是一份试用文件

edit2:我尝试使用一个新文件,使用新数据。同样的错误。从我看到的情况来看,数据帧跳过了.csv文件的第一行,并且没有将其正确插入数据帧。我的意思是:

     10    25  25.1  25.2  25.3  25.4
0    20   486   486   486   486   486 

我解决了这个问题。df.to_sql行试图将csv文件的第一行作为列标题。轻松修复,只需在csv文件中编辑它们,以反映您希望它们在数据库中显示的名称。例如,在.csv文件中将数据下移一行,并添加列的标题

见: