Как отформатировать панд тип datetime64, чтобы показывать только время, а не дату и время - PullRequest
2 голосов
/ 08 апреля 2019

Я пытаюсь изменить тип столбца с объекта на datetime64, но хочу, чтобы он отображал только время как часы: минуты.

Столбец представляет собой строку в формате 13:45:00. Когда я изменяю тип данных на datetime64, он теперь печатает его с установленной датой (1900-01-01 13:45:00).

Я хочу, чтобы тип данных столбца был типом datetime64 (чтобы я мог выполнять сравнения и операции позже), но только я хочу, чтобы он отображал время в формате час: минута без секунд и без даты. Пример - 13: 45

Все, что я могу найти в Google, - это получение только даты для отображения и сохранения типа данных datetime64, что я смог сделать.

Я пытался связываться с pd.to_datetime (). Dt.strftime ('% H:% M'). Он правильно форматирует столбец, но его тип данных - объект, а не datetime64.

cycle_trips_df['Checkout Date'] = pd.to_datetime(
    cycle_trips_df['Checkout Date'], infer_datetime_format=True
    ).dt.normalize() #strftime('%m/%d/%Y') # format='%m/%d/%Y').dt.date

cycle_trips_df['Checkout Time'] = pd.to_datetime(
    cycle_trips_df['Checkout Time'], format='%H:%M:%S'
).dt.strftime('%H:%M')
print(cycle_trips_df.dtypes)

[выход]

Дата оформления заказа datetime64 [нс]
Время оформления заказа

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Различают данные и ваши взгляды на эти данные.Datetime64 является datetime64 и будет напечатан по умолчанию как полная строка даты.Вы можете использовать strftime, чтобы получить часть времени.

str = "13:45:00"                     # Your string.
dt64 = pd.to_datetime(str)           # the datetime64 object
timestr = dt64.strftime("%H:%M:%S")  # extracting the time string from the datetime64.
1 голос
/ 08 апреля 2019

Используйте timedelta вместо даты-времени:

In [11]: s = pd.Series(['13:45:00'])

In [12]: pd.to_timedelta(s)
Out[12]:
0   13:45:00
dtype: timedelta64[ns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...