计算熊猫Pandas组中的平均时差

时间:2019-05-10 03:33:02

标签: python pandas datetime time pandas-groupby

我正在尝试计算某些组的两次操作之间的平均时间。数据框如下所示:

Name, Action_ID, Start_Time, End_Time
A, 11, 2019-05-01 09:10:00, 2019-05-01 09:20:00
A, 12, 2019-05-01 09:30:00, 2019-05-01 09:40:00
A, 13, 2019-05-01 09:50:00, 2019-05-01 10:00:00
B, 11, 2019-05-01 09:20:00, 2019-05-01 09:40:00
B, 12, 2019-05-01 09:45:00, 2019-05-01 09:55:00

我想按名称分组,并获取上一个动作的开始时间和结束时间之间的平均时间。所以基本上是这样的:

Name, Avg_Time_Elapsed
A, 10
B, 5

我用以下代码创建了一个名为delta的新列:

df['delta'] = df['Start_Time'] - df['End_Time'].shift(-1)

但是它给我一个奇怪的结果,因为它显示出差异是-1天而不是分钟/秒。用python编写此代码的任何优雅方法吗?谢谢

1 个答案:

答案 0 :(得分:1)

IIUC,您确实需要 date type x z y 0 2018-01-01 A 10 1 1 1 2018-01-01 B 50 0 1 2 2018-02-01 B 30 0 0 3 2018-03-01 A 20 0 0 4 2018-03-01 B 70 1 0 5 2018-03-01 C 30 1 0 6 2018-04-01 A 10 1 1 7 2018-04-01 B 60 0 1 8 2018-05-01 B 30 0 0 9 2018-06-01 A 50 1 1 10 2018-06-01 B 20 0 1 11 2018-06-01 C 30 1 1 12 2018-07-01 A 10 0 0 13 2018-08-01 B 90 1 0 14 2018-08-01 C 30 1 0 15 2018-09-01 A 20 1 1 16 2018-09-01 B 70 0 1 17 2018-10-01 C 30 0 1 18 2018-10-01 A 60 1 1 19 2018-10-01 B 80 1 1 20 2018-11-01 A 20 0 0 21 2018-12-01 B 70 0 0 22 2018-12-01 C 90 1 0

groupby