как преобразовать индекс в datetime без миллисекунд в pandas - PullRequest
0 голосов
/ 28 мая 2020

У меня есть фрейм данных, индекс которого я хочу преобразовать в формат даты и времени: %Y%m%d%H:%M:%S. Я пробовал следующий код: pd.to_datetime(dfn.index,origin=pd.Timestamp('2012-01-01 00:00:00'))

, но возвращенный формат DateTime присвоил значение индекса миллисекундам, как показано.

enter image description here

При указании формата я получаю сообщение об ошибке: ValueError: time data '1325376000000000000' не соответствует формату '% Y% m% d% H:% M:% S' (соответствует)

Я бы хотел, чтобы значение индекса было отнесено к часам, как я могу это сделать?

Исходные данные выглядят следующим образом.

enter image description here

1 Ответ

0 голосов
/ 28 мая 2020

Если у вас есть DataFrame с индексом numeri c, который представляет время в определенной единице, вам следует указать эту единицу, если вы хотите преобразовать в datetime (см. здесь для возможных спецификаторы единиц). В противном случае to_datetime будет предполагать, что число по умолчанию представляет собой наносекунды. Пример:

import numpy as np
import pandas as pd

df = pd.DataFrame({'v': np.random.rand(10)}, index=np.arange(10))
# df.index
# Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='int64')

# e.g. assuming unit is seconds:
df.index = pd.to_datetime(df.index, origin=pd.Timestamp('2012-01-01 00:00:00'), unit='s')
# df
# 2012-01-01 00:00:00  0.393867
# 2012-01-01 00:00:01  0.252125
# 2012-01-01 00:00:02  0.639876
# 2012-01-01 00:00:03  0.804882
# 2012-01-01 00:00:04  0.582824
# 2012-01-01 00:00:05  0.719932
# 2012-01-01 00:00:06  0.491117
# 2012-01-01 00:00:07  0.299446
# 2012-01-01 00:00:08  0.495090
# 2012-01-01 00:00:09  0.553190

Обратите внимание, что если вы хотите отображать индекс datetime в определенном формате, вам нужно будет преобразовать в строку с помощью strftime:

df.index.strftime('%Y%m%d% H:%M:%S')
# Index(['2012-01-01 00:00:00', '2012-01-01 00:00:01', '2012-01-01 00:00:02',
#        '2012-01-01 00:00:03', '2012-01-01 00:00:04', '2012-01-01 00:00:05',
#        '2012-01-01 00:00:06', '2012-01-01 00:00:07', '2012-01-01 00:00:08',
#        '2012-01-01 00:00:09'],
#       dtype='object')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...