Pandas - анализ столбца datetime из базы данных sqlite

99
9

В настоящее время я изучаю панды библиотеки python с некоторыми практическими данными, где один из столбцов содержит объект datetime. Однако, когда таблица анализируется с использованием метода DataFrame, объекты datetime в столбце даты анализируются с начальным значением, например, с 1970-01-16 14:12:28.

Если у меня, например, есть np.array со следующим содержимым:

np.array(result, dtype=my_dtype) =
array([ (datetime.datetime(2012, 9, 9, 0, 0), datetime.datetime(2012, 9, 8, 15, 10)),
dtype=[('Date', ('<M8[us]', {})), ('Forecasting', ('<M8[us]', {})),

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

test = pandas.DataFrame(np.array(result, dtype=my_dtype))
test['Date'] =
1970-01-16 14:12:28.800000

а также

test['Forecasting'] =
1970-01-16 14:11:57

Это ошибка, или что я делаю неправильно?

FYI: панды. версия= 0.8.1, numpy. версия= 1.6.2 и Python 2.7.3

спросил(а) 2021-01-25T22:27:39+03:00 4 месяца, 2 недели назад
1
Решение
77

Я не знаком с panda, но я подозреваю, что что-то не так с тем dtype который вы выбираете для своих полей. Похоже, вы используете [us], то есть микросекунды с эпохи (1970-01-01), когда вы, вероятно, должны использовать days с эпохи.

Другая возможность - использовать базовые объекты datetime в вашем ndarray, используя dtype=object.

ответил(а) 2021-01-25T22:27:39+03:00 4 месяца, 2 недели назад
63

Это ошибка. Сообщено здесь: http://github.com/pydata/pandas/issues/2095

ответил(а) 2021-01-25T22:27:39+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема