这篇文章是将最后一行的值分配给第一行:将最后一个值移动到第一个值.
我想将第二个重复项中的值移至第一个重复项,并将其他值设置为 NaT。
ID OutBedTime DateOutBed
1 16/05/2018 0:17 16/05/2018
1 16/05/2018 4:05 16/05/2018
1 16/05/2018 6: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 5:32 17/05/2018
预期产出
ID OutBedTime DateOutBed TimeOutBedFinal
1 16/05/2018 0:17 16/05/2018 16/05/2018 4:05
1 16/05/2018 4:05 16/05/2018 NaT
1 16/05/2018 6:05 16/05/2018 NaT
1 17/05/2018 1:27 17/05/2018 17/05/2018 4:41
1 17/05/2018 4:41 17/05/2018 NaT
1 17/05/2018 5:32 17/05/2018 NaT
谢谢。
让我们做reindex
with apply
并选择第二行,然后执行与上一个问题相同的操作
df['New']=df.groupby('DateOutBed')['OutBedTime'].apply(lambda x : x.iloc[[1]]).reset_index(level=1,drop=True).reindex(df.DateOutBed).values
df['New']=df.New.mask(df.DateOutBed.duplicated())
df
ID OutBedTime DateOutBed New
0 1 16/05/20180:17 16/05/2018 16/05/20184:05
1 1 16/05/20184:05 16/05/2018 NaN
2 1 16/05/20186:05 16/05/2018 NaN
3 1 17/05/20181:27 17/05/2018 17/05/20184:41
4 1 17/05/20184:41 17/05/2018 NaN
5 1 17/05/20185:32 17/05/2018 NaN
检查更新情况
df['New']=df.groupby('DateOutBed')['OutBedTime'].transform(lambda x : x.iloc[1] if len(x)>1 else x.iloc[0])
df['New']=df.New.mask(df.DateOutBed.duplicated())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)