繁体   English   中英

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

[英]Python/MariaDB: Converting .csv data to Data-frames and exporting to Database

对于我正在从事的项目,我尝试读取存储为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),这就是我得到的: 对不起,无法正确格式化它,所以我上传了图像现在这是一个问题,因为我从中创建数据帧的测试.csv文件没有相同的数据。 以下是图像: 在这里你可以清楚地看到,没有“ 102525.125.225.325.4值。

我将尝试制作一个新文件并对其进行测试,以查看它是否有效,但是我的数据库中包含所有适当的列。 我不明白为什么数据框正在从.csv中读取不存在的值。 也许我的代码没有出现任何错误。

我非常感谢您对此错误所能提供的任何帮助。

非常感谢。

edit1:我应该注意,这不是REAL传感器数据。 这是一个试用文件。

edit2:我尝试了一个新文件,新数据。 同样的错误。 据我所知,数据框正在跳过.csv文件的第一行,而没有将其正确插入数据框。 这是我的意思:

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

我发现了问题。 df.to_sql行试图使csv文件的第一行成为列标题。 轻松解决,只需在csv文件中对其进行编辑即可反映您希望它们在数据库中使用的名称。 IE,将数据在.csv文件中向下移动一行并添加列标题。

请参阅: Excel修复。 数据库修复。 Python修复

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM