gpt4 book ai didi

python - 将第二个副本中的值移动到第一个副本

转载 作者:行者123 更新时间:2023-12-04 15:26:08 25 4
gpt4 key购买 nike

这篇文章是将最后一行的值分配给第一行:Move last value to first value .

我想将第二个副本中的值移动到第一个副本并将其他副本设置为 NaT。

ID  OutBedTime        DateOutBed1   16/05/2018 0:17   16/05/20181   16/05/2018 4:05   16/05/20181   16/05/2018 6:05   16/05/20181   17/05/2018 1:27   17/05/20181   17/05/2018 4:41   17/05/20181   17/05/2018 5:32   17/05/2018

预期输出

ID  OutBedTime        DateOutBed    TimeOutBedFinal1   16/05/2018 0:17   16/05/2018    16/05/2018 4:051   16/05/2018 4:05   16/05/2018    NaT1   16/05/2018 6:05   16/05/2018    NaT1   17/05/2018 1:27   17/05/2018    17/05/2018 4:411   17/05/2018 4:41   17/05/2018    NaT1   17/05/2018 5:32   17/05/2018    NaT

谢谢。

最佳答案

让我们用 applyreindex 并选择 row 的第二个,然后像我们在上一个问题中做的一样

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())

关于python - 将第二个副本中的值移动到第一个副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62206992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com