如何计算熊猫每个员工每天的时差



我有这个数据帧

Matricule         DateTime        Date      Time
1   10  2022-01-06 10:59:51 2022-01-06  10:59:51
2   10  2022-01-07 08:40:09 2022-01-07  08:40:09
3   10  2022-01-26 15:39:10 2022-01-26  15:39:10
4   11  2022-01-03 14:33:38 2022-01-03  14:33:38
81  11  2022-01-04 10:04:18 2022-01-04  10:04:18
... ... ... ... ...
15  18  2022-01-24 15:51:22 2022-01-24  15:51:22
15  18  2022-01-24 15:51:29 2022-01-24  15:51:29
15  18  2022-01-24 16:54:23 2022-01-24  16:54:23
15  18  2022-01-28 14:42:01 2022-01-28  14:42:01
15  18  2022-01-28 14:42:32 2022-01-28  14:42:32

我想为每个员工计算一天中第一次和最后一次之间的时间差,以了解他每天花在工作上的时间,例如

Matricule          Date  WorkTime      
1   10     2022-01-06  1
2   10     2022-01-07  3
3   10     2022-01-26  5
4   11     2022-01-03  2
81  11     2022-01-04  8

您可以使用拆分-应用-组合方法,为每个组编写一个函数,并通过在组上应用

grpd = df.groupby(['Matricule', 'Date'])
def get_hours(df):
start = df['Time'].min()
end = df['Time'].max()
new_df = pd.DataFrame([end-start], columns=['WorkTime'])
return new_df
grpd.apply(get_hours)