Получение KeyError в pandas .hashtable - PullRequest
1 голос
/ 29 апреля 2020

У меня на рабочем столе есть папка с 5-минутным периодом c данные временных рядов с датой и временем в формате txt, такие как;

...
Apr 29 12:51 file_2020-04-29_12:45:00.txt
Apr 29 12:55 file_2020-04-29_12:50:00.txt
Apr 29 13:01 file_2020-04-29_12:55:00.txt
Apr 29 13:06 file_2020-04-29_13:00:00.txt
Apr 29 13:11 file_2020-04-29_13:05:00.txt
Apr 29 13:16 file_2020-04-29_13:10:00.txt
Apr 29 13:21 file_2020-04-29_13:15:00.txt
Apr 29 13:26 file_2020-04-29_13:20:00.txt
Apr 29 13:31 file_2020-04-29_13:25:00.txt
Apr 29 13:36 file_2020-04-29_13:30:00.txt
Apr 29 13:41 file_2020-04-29_13:35:00.txt
Apr 29 13:46 file_2020-04-29_13:40:00.txt
Apr 29 13:51 file_2020-04-29_13:45:00.txt
Apr 29 13:56 file_2020-04-29_13:50:00.txt

Содержимое каждого файла, как;

[neg@nik:/cnp-cnx]# head file_2020-04-29_13:55:00.txt
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_bskhdra1_lnk01,True,1753359343,2374.0,1753359344,2375.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_bskhdra1_lnk02,True,1753359343,2371.0,1753359344,2370.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_bskhdra1_lnk03,True,1753359343,2374.0,1753359344,2376.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_bvhdra01_lnk01,True,1753359343,2377.0,1753359344,2377.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_bvhdra01_lnk02,True,1753359343,2369.0,1753359344,2364.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_bvhdra01_lnk03,True,1753359343,2362.0,1753359344,2361.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_mbhdra01_lnk01,True,1753359343,1629.0,1753359344,1631.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_mbhdra01_lnk02,True,1753359343,1634.0,1753359344,1632.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_mbhdra01_lnk03,True,1753359343,1633.0,1753359344,1632.0
2020-04-29 13:55:00,BSKHDEA1_SPS/Diameter Link:Link name=bskhdea1_ipx_ibasis1_asd_lnk02,True,1753359343,3871.0,1753359344,3869.0

Я пытаюсь поместить все содержимое файла в базу данных mysql этим методом;

import mysql.connector
import glob
import os
import pandas as pd

list_of_files = glob.glob('/cnp-cnx*.txt')
latest_file = max(list_of_files, key=os.path.getctime)

cnx = mysql.connector.connect(user='user', password='password',host='10.10.1.10',database='database')
cur = cnx.cursor(buffered=True)

for i in list_of_files:
  data = pd.read_csv(i, header=None)
  cur.execute("""INSERT INTO table1 (DATETIME, NODE, COND, COUNTER1, C1753359343, COUNTER2, C1753359344) VALUES ( %s,%s,%s,%s,'%s',%s,'%s' )""", ( data[0].values, data[1].values, data[2].values,data[3].values, data[4].values, data[5].values,data[6].values, data[7].values ) )

И я получаю сообщение об ошибке ниже, не могли бы вы сказать мне, где находится моя ошибка ?

>>> import glob
>>> import os
>>> import pandas as pd
>>> import mysql.connector
>>> list_of_files = glob.glob('/cnp-cnx*.txt')
>>> latest_file = max(list_of_files, key=os.path.getctime)
>>> 
>>> cnx = mysql.connector.connect(user='user', password='password',host='10.10.1.10',database='database')
>>> cur = cnx.cursor(buffered=True)
>>> 
>>> for i in list_of_files:
...   data = pd.read_csv(i, header=None)
...   cur.execute("""INSERT INTO table1 (DATETIME, NODE, COND, COUNTER1, C1753359343, COUNTER2, C1753359344) VALUES ( %s,%s,%s,%s,'%s',%s,'%s' )""", ( data[0].values, data[1].values, data[2].values,data[3].values, data[4].values, data[5].values,data[6].values, data[7].values ) )
... 
Traceback (most recent call last):
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/pandas/core/indexes/base.py", line 2657, in get_loc
    return self._engine.get_loc(key)
  File "pandas/_libs/index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/hashtable_class_helper.pxi", line 987, in pandas._libs.hashtable.Int64HashTable.get_item
  File "pandas/_libs/hashtable_class_helper.pxi", line 993, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: 7

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/pandas/core/frame.py", line 2927, in __getitem__
    indexer = self.columns.get_loc(key)
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/pandas/core/indexes/base.py", line 2659, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas/_libs/index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/hashtable_class_helper.pxi", line 987, in pandas._libs.hashtable.Int64HashTable.get_item
  File "pandas/_libs/hashtable_class_helper.pxi", line 993, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: 7
>>> 
>>> 
...