IIUC公司
df.groupby(['ID','Ward']).agg({'Start transfer':'first','Finish transfer':'last'}).reset_index()
Out[151]:
ID Ward Start transfer Finish transfer
0 7685933 Anestesiology 05/11/2015 12:49 11/11/2015 16:12
1 7685933 General surgery 04/11/2015 12:07 18/11/2015 21:24
2 7685933 ICU 18/11/2015 21:24 02/01/2016 06:45
3 7690142 Internal Medicine 06/11/2015 17:24 11/01/2016 18:00
4 7691888 Internal Medicine 08/11/2015 16:28 04/01/2016 21:13
使现代化
df.assign(Key=(df.Ward.shift()!=df.Ward).cumsum()).groupby(['ID','Ward','Key']).agg({'Start transfer':'first','Finish transfer':'last'}).reset_index().sort_values('Key')
Out[181]:
ID Ward Key Start transfer Finish transfer
1 7685933 General surgery 1 04/11/2015 12:07 05/11/2015 12:49
0 7685933 Anestesiology 2 05/11/2015 12:49 11/11/2015 16:12
2 7685933 General surgery 3 11/11/2015 16:12 18/11/2015 21:24
3 7685933 ICU 4 18/11/2015 21:24 02/01/2016 06:45
4 7690142 Internal Medicine 5 06/11/2015 17:24 11/01/2016 18:00
5 7691888 Internal Medicine 5 08/11/2015 16:28 04/01/2016 21:13