Как правильно экспортировать время и даты из Excel с помощью Python

Я пытаюсь создать график времени, и поэтому я должен использовать данные даты из Excel. Данные находятся в первом столбце моей таблицы результатов, и поэтому я использую следующий код:

import xlrd
import numpy as np
import matplotlib.pyplot as plt
import datetime

#Define xlsfiles
wb = xlrd.open_workbook("workbookname.xlsx")
sheet = wb_octopus.sheet_by_name("nameofsheet")

#Read data from excelsheet
Y1_data = np.array(sheet.col_values(8, start_rowx=1,end_rowx=None))
Y2_data = np.array(sheet.col_values(11, start_rowx=1,end_rowx=None))
for i in range(len(Y1_data)):
     date_data = xlrd.xldate.xldate_as_datetime(sheet.cell(i,0).value,1)
     time_data.append(date_data)

Проблема в том, что python неверно интерпретирует даты, так как мое первое свидание в excel - 2-12-2011 3:05:00, а python дает datetime.datetime(2015, 12, 3, 3, 5).

Я надеюсь, что кто-то сможет объяснить, почему это происходит, и как я могу это решить.

2 ответа

Благодаря документации, предоставленной chrisheinze, я обнаружил, что проблема была в следующей строке в моем коде:

date_data = xlrd.xldate.xldate_as_datetime(sheet.cell(i,0).value,1)

Кажется, что 1 в конце указывает на преобразование даты и времени в Macintosh, в котором говорится, что первый день в системе дат - 1904-01-02. Я не работаю на Mac, поэтому мне пришлось изменить это на 1900-й режим даты и, следовательно, пришлось изменить строку следующим образом:

date_data = xlrd.xldate.xldate_as_datetime(sheet.cell(i,0).value,0)

Это решило мои проблемы.

В документации xlrd немного говорится о проблемах, возникающих в методе хранения дат в Excel, в частности в таблицах, созданных на Mac. Благодаря этому вы сможете определить временную дельту, которую необходимо добавить к каждой дате.

Другой вариант - открыть электронную таблицу в Excel, скопировать и вставить столбец даты в виде текста. Таким образом, xlrd будет интерпретировать его как строку, которую затем можно будет отформатировать как объект datetime.

Другие вопросы по тегам