取日期时间的平均值

时间:2019-09-26 04:07:01

标签: python pandas

我有以下代码,其中包括两列,其中第一列是过程开始的时间,第二列是过程完成的时间。我通过以下代码将这些列的类型从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 :(得分:0)

您可以尝试以下方法:

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()