Python Pandas datetime set_index дает неожиданные результаты - PullRequest
2 голосов
/ 03 августа 2020

У меня есть фрейм данных, который выглядит вот так :

, и я хочу сделать столбец TIME_STAMP_NEW в качестве индекса. Текущий код:

twoweektable['TIME_STAMP_NEW'] = pd.to_datetime(twoweektable['TIME_STAMP_NEW'])
twoweektable.set_index('TIME_STAMP_NEW',inplace=True)

Однако индекс результата выглядит так

Есть идеи, почему в секундах появляется неожиданная буква T и десятичная дробь?

Ответы [ 2 ]

1 голос
/ 04 августа 2020

'T' - это разделитель, указывающий pandas, где разделять дату и время. Это часть стандарта ISO-8601 и не должно быть проблемой для pandas, независимо от того, как вы собираетесь использовать временные метки.

Чтобы избавиться от конечных десятичный, попробуйте отформатировать до секунд, затем округлите до ближайшей секунды:

pd.to_datetime("twoweektable['TIME_STAMP_NEW']",format="%Y-%m-%d %H:%M:%S").round('s')
0 голосов
/ 03 августа 2020

Я предполагаю, что исходный столбец является строкой. Обычно pandas преобразует строку в полную дату с наносекундами (аргумент по умолчанию для параметра единицы).

Вы можете попробовать добавить

pd.to_datetime(twoweektable['TIME_STAMP_NEW'], unit='s')

Это удалит отметку наносекунд.

...