Дата и время 12-часовой формат Pandas Python

1

Я пытаюсь преобразовать этот формат времени в datetime:

Date    Hour

05/12/17 2:15 p
05/12/17 2:20 p
05/12/17 2:25 p

С помощью:

pd.to_datetime(df['Hour'], format="%I:%M %p")

Получение этой ошибки:

ValueError: time data '05/12/17 2:15 p' does not match format '%d/%m/%y %I:%M %p' (match)
  • 0
    Дата и время = дата + время. Где дата?
  • 0
    Кроме того, директива %p является языковым эквивалентом AM или PM (например, в США, 14:15 приведет к 1900-01-01 14:15:00, учитывая только время).
Показать ещё 1 комментарий
Теги:
pandas
datetime

1 ответ

2
Лучший ответ
df = pd.DataFrame({
    'Date': ['05/12/17'] * 3, 
    'Hour': ['2:15 p', '2:20 p', '2:25 a']})

>>> pd.to_datetime(
        df['Date'] 
        + " " 
        + df['Hour'].str.replace('p', 'PM').str.replace('a', 'AM')
    )
0   2017-05-12 14:15:00
1   2017-05-12 14:20:00
2   2017-05-12 02:25:00
dtype: datetime64[ns]

Обратите внимание, что я изменил третий элемент с 'p' на 'a', чтобы показать, как он должен работать для AM. Я также предполагаю, что "AM" и "PM" являются правильными представлениями в вашей локали.

Вы можете добавить format='%m/%d/%y %I:%M %p' в качестве аргумента, чтобы сделать преобразование более явным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню