Как исправить даты для вставки следующего кадра данных в таблицу MySQL? - PullRequest
0 голосов
/ 12 октября 2019

Здравствуйте. Я пытаюсь вставить один фрейм данных в таблицу mysql:

Содержит несколько следующих дат:

  DateI            datetime64[ns]
  DateF            datetime64[ns]

столбец выглядит следующим образом:

print(big['DateI'])

1   2019-10-08
1   2019-10-01
Name: DateI, Length: 241, dtype: datetime64[ns]

при печати в виде списка выглядит следующим образом:

print(big['DateI'].to_list())

[Timestamp('2019-08-12 00:00:00'), Timestamp('2019-09-20 00:00:00'),...]

И тип каждого элемента в столбце данных:

for element in big['DateI']:
    print(type(element))

<class 'pandas._libs.tslibs.timestamps.Timestamp'>

однако при попытке вставить его следующим образом, используя pymysql:

для i, строка в big.iterrows ():

sql = "INSERT INTO `mytable4` (`" +cols + "`) VALUES (" + "%s,"*(len(row)-1) + "%s)"


cursor.execute(sql, tuple(row))

connection.commit()

Я получил:

~/.local/lib/python3.6/site-packages/pymysql/converters.py in 
_escape_unicode(value, mapping)
     71     Value should be unicode
     72     """
 ---> 73     return value.translate(_escape_table)
      74 
      75 if PY2:

AttributeError: 'Timestamp' object has no attribute 'translate'

Я пытался:

big['DateI']=[x.to_pydatetime() for x in big['DateI'].to_list()]

big['DateI']= [x.to_pydatetime() for x in big['DateF'].to_list()]

Однако я получил ту же ошибку,

...