Python 将最后一个值移动到第一个值

Python 将最后一个值移动到第一个值,python,pandas,Python,Pandas,在这个数据帧中,我想将最后一个副本中的值移动到第一个副本,并将其他值设置为NaT ID OutBedTime DateOutBed 1 16/05/2018 0:17 16/05/2018 1 16/05/2018 4:05 16/05/2018 1 17/05/2018 1:27 17/05/2018 1 17/05/2018 4:41 17/05/2018 1 17/05/2018 4:32 17/05/2018 但是如何将该值分配给第

在这个数据帧中,我想将最后一个副本中的值移动到第一个副本,并将其他值设置为NaT

ID OutBedTime DateOutBed 1 16/05/2018 0:17 16/05/2018 1 16/05/2018 4:05 16/05/2018 1 17/05/2018 1:27 17/05/2018 1 17/05/2018 4:41 17/05/2018 1 17/05/2018 4:32 17/05/2018 但是如何将该值分配给第一行呢?

让我们试试

L1 = s1.groupby(['ID', 'DateOutBed'])['OutBedTime'].transform('last')
s1['TimeOutBedFinal'] = L1.mask(s1[['ID', 'DateOutBed']].duplicated())
 L = s1.groupby(['ID', 'DateOutBed'])['DateOutBed'].tail(1)
 L = L.reset_index()['index']
L1 = s1.groupby(['ID', 'DateOutBed'])['OutBedTime'].transform('last')
s1['TimeOutBedFinal'] = L1.mask(s1[['ID', 'DateOutBed']].duplicated())