我有这个数据帧
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)