Форматирование df.to_datetime приводит к появлению записей NaT - PullRequest
0 голосов
/ 22 октября 2019

Моя конечная цель - создать график для определенного временного диапазона (просто показывая часы и минуты). Вот как выглядит мой оригинальный df:

Herzrate (bpm)  Zeit
0   NaN     2019-9-15 7:55
1   NaN     2019-9-15 7:55
2   NaN     2019-9-15 7:55
...
8   85.0    2019-9-15 7:55
9   85.0    2019-9-15 7:55
10  85.0    2019-9-15 7:55
...
49925   106.0   2019-9-15 21:47

Сначала я удаляю строки NaT, а затем я хочу преобразовать объекты в datetime, чтобы установить диапазон, позже.

df.dropna(axis=0, how='any',inplace=True)
pd.to_datetime(df['Zeit'],format = '%H:%M', errors='coerce')

К сожалению, в результате все записи конвертируются в NaT

...
49921   NaT
49922   NaT
49923   NaT
49924   NaT
49925   NaT
Name: Zeit, Length: 49515, dtype: datetime64[ns]

Я не совсем понимаю свою ошибку.

Преобразование вместо format=, кажется, работает в первую очередь, но когда я пытаюсьпросто печатать часы и числа с помощью print(df['Zeit'].dt.strftime('%H:%M')) это приводит к следующей ошибке: «Можно использовать только аксессор .dt со значениями, похожими на дату-время»

РЕДАКТИРОВАТЬ: решение Erfans работало совершенно нормально. Спасибо за это!

1 Ответ

1 голос
/ 23 октября 2019

Ваш format неправильный, вам нужно получить доступ к атрибутам hour и minute после преобразования его в datetime:

pd.to_datetime(df['Zeit'],errors='coerce').dt.strftime('%H:%M')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...