【发布时间】:2019-11-03 15:40:26
【问题描述】:
我有一个 Pandas 数据框,其中包含多个个体和每个个体的多个观察值 - 下面数据框的前三列(Id、Date、Termination)。每个人的观察次数不是固定的。也就是说,有时是 1,有时是 2,有时是 3 等等。数据按如下方式堆叠(即与个人相关的所有观察结果都放在一起,并且个人相互堆叠)。
我想构建第 4 列,持续时间。如果观察不是该个体的最后一次观察,则持续时间等于下一次观察的日期减去当前观察的日期。也就是说,第一个值 267 = 1/05/2010 - 7/08/2009,第二个值 365 = 1/05/2011 - 1/05/2010。如果观察是该个人的最后一次观察,则持续时间等于终止日期减去日期。也就是说,463 的第三个值 = 6/08/2012 - 1/05/2011。
我将如何在 python 中实现这一点?抱歉,这里是 python 新手,我不知道谷歌该从什么开始...
df = pd.DataFrame({
'ID':['AE871161', 'AE871161', 'AE871161', 'AE871164', 'AE871164', 'AE871188', 'AE871188', 'AE871188'],
'Date':['7/08/2009', '1/05/2010', '1/05/2011', '31/07/2010', '31/07/2011', '1/06/2009', '14/06/2010', '13/06/2011'],
'Termination':['6/08/2012', '6/08/2012', '6/08/2012', '15/07/2012', '15/07/2012', '10/06/2012', '10/06/2012', '10/06/2012']
})
【问题讨论】:
-
以文本而不是图像的形式发布数据。你为实现这一目标做了什么? @brb
标签: python python-3.x pandas