ошибка преобразования строки datetime в правильный формат datetime и вычисления общего количества секунд из чч: MM: SS.sss во временной части в pandas кадре данных - PullRequest
0 голосов
/ 24 января 2020

У меня есть pandas фрейм данных, который имеет метку даты в формате строки следующим образом:

df = pd.DataFrame({'date_time':['2019-06-19 02:10:52.563', '2019-06-20 06:20:35.123', '2019-06-21 15:38:24.567', '2019-06-22 13:45:56.243', '2019-06-23 09:37:34.789']})

Я хочу сделать следующее:

  1. изменить формат для правильной даты и времени введите
  2. Создайте новый столбец, в котором общее количество секунд будет вычислено в круглом номере, например, в первой записи общее количество секунд для 02: 10: 52,563 будет равно «7853» секунд (потому что 52,567 секунд должно быть взято за 53 секунды.

Что я пытаюсь сделать:

df['proper_date_time'] = pd.to_datetime(df['date_time'])

Работало нормально.

Но Как рассчитать общее количество секунд?

Я пытался сделать это:

 df['proper_end_date'].dt.time.sub(df['proper_start_date'].dt.time)

Но это дало мне ошибку:

 TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

Я также пытался:

 (df['proper_end_date'] - df['proper_start_date']).dt.time

Это также выдавал ошибку как:

  AttributeError: 'TimedeltaProperties' object has no attribute 'time'

1 Ответ

2 голосов
/ 24 января 2020

IIU C добавить еще один конверт с to_timedelta

pd.to_timedelta(pd.to_datetime(df['date_time']).dt.time.astype(str)).dt.total_seconds()
0     7852.563
1    22835.123
2    56304.567
3    49556.243
4    34654.789
Name: date_time, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...