Я заметил, что когда я использую openpyxl для добавления дополнительного листа в файл .xlsx, он автоматически изменяет числовой формат столбца (столбцов) в ранее существующем листе в этом файле.
Хронологически проблема заключается в следующем:
1) Я использую формат «отметки времени» для ручной записи даты и времени некоторых интересующих событий в столбце этого ранее существующего листа. Через Excel я установил для столбца формат даты (код формата «ММ / ДД / ГГГГ ЧЧ: ММ: СС»)
Столбец, в котором я сохраняю дату и время событий, которые я регистрирую
2) Я прочитал этот «ранее существующий» лист с пандами, и все идет хорошо (то есть, панды могут читать эти даты / время):
import pandas as pd
df = pd.read_excel(myPath + 'myFile.xlsx',sheetname='pre-existent',header=0)
print(df['timeStampUTC'])
timeStampUTC
0 2018-12-02 12:59:00
1 2018-12-02 14:29:00
2 2018-12-02 15:39:00
3 2018-12-02 17:05:00
4 2018-12-02 18:38:00
5 2018-12-02 19:36:00
6 2018-12-02 20:27:00
7 2018-12-02 21:44:00
8 2018-12-02 22:15:00
9 2018-12-02 22:46:00
10 2018-12-02 23:07:00
11 2018-12-04 15:46:00
12 2018-12-04 15:53:00
Name: timeStampUTC, dtype: datetime64[ns]
3) Я делаю некоторые вычисления и сохраняю эти другие вычисления на новом листе в том же файле ('myFile.xlsx') и сохраняю изменения:
from openpyxl import *
writer = pd.ExcelWriter(myPath + 'myFile.xlsx', engine = 'openpyxl')
writer.book = book
New_df.to_excel(writer, index = False, sheet_name='new-sheet')
writer.save()
writer.close()
4) Как только я попытаюсь повторить шаг 2, панды больше не могут правильно читать дату и время в моем столбце:
print(df['timeStampUTC'])
timeStampUTC
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
10 NaN
11 NaN
12 NaN
Name: timeStampUTC, dtype: float64
Важно отметить, что при повторном открытии «myFile.xlsx» в Excel столбец отображается как обычно. Когда я переустановил числовой формат столбца на «Дата» (код формата «ММ / ДД / ГГГГ ЧЧ: ММ: СС»), pandas снова сможет читать метки времени.
Все, что позволяет мне перечитать этот столбец с пандами, приветствуется.
Спасибо !!!!
Juancho Gossn