Принимая среднее время даты - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть следующий код, который включает в себя два столбца, где первый столбец - время запуска процесса, а второй столбец - время завершения процесса.Я изменил тип этих столбцов с str на набор данных с помощью следующего кода.Затем я определил новый столбец с именем «Продолжительность», в котором показаны различия между временем начала и окончания.

import pandas as pd
dta['Start_Time']=pd.to_datetime(dta['Start_Time'])
dta['Finish_Time']=pd.to_datetime(dta['Finish_Time'])
dta['Duration'] = example_df['Finish_Time']-example_df['Start_Time']

Мне нужно рассчитать среднее количество времени, которое потребовалось для завершения процесса.Например, если у меня есть три даты начала и окончания

((2006-06-02 9: 10: 00 + 00: 00- 2006-06-02 9: 00: 00 + 00: 00) + (2006-06-04 9: 52: 00 + 00: 00-2006-06-04 8: 52: 00 + 00: 00) + (2006-06-07 9: 02: 00 + 00: 00-2006-06-07 8: 54: 00 + 00: 00)) / 3 = 26 минут.

Я попробовал следующий код:

dta['Duration'].mean()

Однако я получилследующая ошибка:

Нет числовых типов для агрегирования

Любая помощь будет оценена.

PS: времена в моем наборе данных такие: 2019-06-16 08: 14: 31 + 00: 00

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете попробовать это:

dta['Duration'] = example_df['Finish_Time']-example_df['Start_Time'].astype('timedelta64[D]')
# D denotes days. Possible values: (‘Y’, ‘M’, ‘W’, ‘D’, ‘days’, ‘day’, ‘hours’, hour’, ‘hr’, ‘h’, ‘m’, ‘minute’, ‘min’, ‘minutes’, ‘T’, ‘S’, ‘seconds’, ‘sec’, ‘second’, ‘ms’, ‘milliseconds’, ‘millisecond’, ‘milli’, ‘millis’, ‘L’, ‘us’, ‘microseconds’, ‘microsecond’, ‘micro’, ‘micros’, ‘U’, ‘ns’, ‘nanoseconds’, ‘nano’, ‘nanos’, ‘nanosecond’, ‘N’)
dta['Duration'].mean()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...