конвертировать timedelta чч: мм в секунды

1

Кажется, я ничего не могу найти, но я пытаюсь преобразовать timestamps выраженные как hh:mm в total seconds.

d = ({
    'A' : ['08:00','08:10','08:12','08:26','08:29','08:31','10:10','10:25','10:29','10:31'],
    })

df = pd.DataFrame(data=d)

Если временные метки были выражены как hh:mm:ss я бы использовал следующее:

secs = (pd.to_timedelta(df['A']).dt.total_seconds())

Но когда я пробую это на hh:mm я получаю сообщение об ошибке?

ValueError: expected hh:mm:ss format.

Есть ли простой способ конвертировать время, когда отображается как hh:mm

Теги:
pandas
time
timedelta

2 ответа

2
Лучший ответ

Просто добавьте :00 в конец строки, чтобы преобразовать его в формате hh:mm:ss.

Пример: 08:00 можно переписать как 08:00:00

Быстрый способ исправить это:

d['A'] = [x + ':00' for x in d['A']]

И затем вы можете запустить следующее:

secs = (pd.to_timedelta(d['A']).dt.total_seconds())
  • 0
    @ Punter345 Конечный результат будет таким же.
  • 0
    @ Punter345 Так? Добавление компонента в 00 секунд не изменит результат total_seconds, не так ли?
Показать ещё 2 комментария
0

Вы также можете добавить несколько секунд:

df['A'] = pd.to_datetime(df['A']).dt.strftime('%H:%M:%S')

Выход:

         A
0  08:00:00
1  08:10:00
2  08:12:00
3  08:26:00
4  08:29:00
5  08:31:00
6  10:10:00
7  10:25:00
8  10:29:00
9  10:31:00

Ещё вопросы

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